fbpx
「給与DXのエムザス」 給与とシステム両方を本業に約20年

Node.js で Kintone のレコードを操作する方法の解説

公開日:2024.12.01
最終更新日:2024.12.01

1. はじめに

Kintone は、企業向けに提供されているクラウド型の業務アプリケーション開発プラットフォームです。データベースを使ったアプリケーションを簡単に作成でき、柔軟にカスタマイズできます。Kintone の強力な特徴の一つは、REST API を使って外部から Kintone のデータを操作できる点です。

本記事では、Node.js 環境を使って、Kintone のレコードを操作する方法を紹介します。Node.js のサーバーから Kintone API を利用して、レコードの作成、更新、取得、削除を行う方法をステップバイステップで解説します。

🌟ちょっとお知らせ🌟

kintoneユーザーの皆さん!
エムザスの kintoneプラグイン はもう試しましたか?🤔

登録不要&無料で、ほとんどの機能が今すぐお試しいただけます✨
今すぐお試ししたい方はこちらから!

さらに、お客様のドメインで 無料で3ヶ月間、すべての機能 を試すこともできます!🎉
以下のリンクからお申し込みください👇
お客様のドメインでじっくりお試ししたい方はこちらから!

それでは、本題に入ります!

2. 必要な準備

Kintone 環境の設定

Kintone を使用するには、まず Kintone アカウントとアプリケーションを作成する必要があります。

  1. Kintone にサインインし、新しいアプリを作成します。
  2. 作成したアプリに必要なフィールド(テキスト、数値、日付など)を追加します。
  3. API トークン を生成します。これにより、外部アプリケーションから API を通じてアプリのデータを操作できるようになります。

Node.js 環境の準備

  1. Node.js と npm(Node.js のパッケージマネージャー) がインストールされていることを確認します。インストールされていない場合は、公式サイトhttps://nodejs.org/)からインストールできます。
  2. プロジェクトを作成するため、以下のコマンドで Node.js のプロジェクトを初期化します。
mkdir kintone-project
cd kintone-project
npm init -y

3. 必要なパッケージをインストールします。

npm install @kintone/rest-api-client express

3. KintoneRestAPIClient のセットアップ

Kintone REST API を操作するためには、KintoneRestAPIClient ライブラリを使います。以下の手順でクライアントをセットアップします。

クライアントの設定

const { KintoneRestAPIClient } = require('@kintone/rest-api-client');

// Kintone 環境の設定
const client = new KintoneRestAPIClient({
  baseUrl: 'https://<your_subdomain>.kintone.com',  // あなたの Kintone サブドメインに置き換えてください
  auth: {
    apiToken: '<your_api_token>'  // 取得した API トークンをここに入力
  }
});

このコードで、Kintone の API トークンを使って認証し、Kintone REST API クライアントを設定します。

4. Kintone レコードの操作

次に、実際に Kintone のレコードを操作する方法を説明します。以下の操作を順に実行します。

レコードの取得 (GET)

指定したアプリのレコードを取得する方法です。

const fetchRecords = async () => {
  try {
    const records = await client.record.getAllRecords({
      app: '<your_app_id>',  // 対象アプリのIDを指定
      query: 'limit 10'      // レコードを10件取得
    });
    console.log(records);
  } catch (error) {
    console.error('レコードの取得に失敗しました:', error);
  }
};

fetchRecords();

このコードは、指定したアプリのレコードを最大10件まで取得して表示します。

レコードの作成 (POST)

新しいレコードを作成する方法です。

const createRecord = async () => {
  const record = {
    field_code_1: { value: '新しい値1' },
    field_code_2: { value: '新しい値2' },
  };

  try {
    const response = await client.record.addRecord({
      app: '<your_app_id>',
      record: record
    });
    console.log('レコードが作成されました:', response);
  } catch (error) {
    console.error('レコードの作成に失敗しました:', error);
  }
};

createRecord();

このコードでは、新しいレコードを指定されたフィールドに追加しています。フィールドコードは Kintone のアプリで設定したものを使用します。

レコードの更新 (PUT)

既存のレコードを更新する方法です。

const updateRecord = async (recordId) => {
  const updatedRecord = {
    field_code_1: { value: '更新された値1' },
    field_code_2: { value: '更新された値2' },
  };

  try {
    const response = await client.record.updateRecord({
      app: '<your_app_id>',
      id: recordId,  // 更新するレコードのIDを指定
      record: updatedRecord
    });
    console.log('レコードが更新されました:', response);
  } catch (error) {
    console.error('レコードの更新に失敗しました:', error);
  }
};

updateRecord(123);  // 例としてレコードIDが123のレコードを更新

指定したレコード ID のフィールドを更新します。

レコードの削除 (DELETE)

レコードを削除する方法です。

const deleteRecord = async (recordId) => {
  try {
    const response = await client.record.deleteRecord({
      app: '<your_app_id>',
      id: recordId  // 削除するレコードのID
    });
    console.log('レコードが削除されました:', response);
  } catch (error) {
    console.error('レコードの削除に失敗しました:', error);
  }
};

deleteRecord(123);  // 例としてレコードIDが123のレコードを削除

指定したレコード ID を削除します。

5. Express サーバーのセットアップ

Node.js のサーバーをセットアップして、上記のレコード操作を API エンドポイントとして提供する方法です。

Express の設定

const express = require('express');
const { KintoneRestAPIClient } = require('@kintone/rest-api-client');

const app = express();
app.use(express.json());  // JSON ボディをパースするミドルウェア

const client = new KintoneRestAPIClient({
  baseUrl: 'https://<your_subdomain>.kintone.com',
  auth: {
    apiToken: '<your_api_token>'
  }
});

// レコード取得 API
app.get('/fetch-records', async (req, res) => {
  try {
    const records = await client.record.getAllRecords({
      app: '<your_app_id>',
      query: 'limit 10'
    });
    res.json(records);
  } catch (error) {
    res.status(500).json({ error: 'レコードの取得に失敗しました' });
  }
});

// レコード作成 API
app.post('/create-record', async (req, res) => {
  const { field_code_1, field_code_2 } = req.body;
  const record = {
    field_code_1: { value: field_code_1 },
    field_code_2: { value: field_code_2 }
  };

  try {
    const response = await client.record.addRecord({
      app: '<your_app_id>',
      record: record
    });
    res.json(response);
  } catch (error) {
    res.status(500).json({ error: 'レコードの作成に失敗しました' });
  }
});

// サーバー起動
const port = 3000;
app.listen(port, () => {
  console.log(`Server is running at http://localhost:${port}`);
});

このコードでは、/fetch-records/create-record の API エンドポイントを作成しています。これにより、外部から HTTP リクエストを送って Kintone のデータを操作することができます。

6. エラーハンドリングとデバッグ

API の操作中にエラーが発生することがあります。そのため、エラーハンドリングをしっかりと実装することが重要です。

  • API トークンが間違っている場合、401 エラーが発生します。
  • レコード ID が存在しない場合、404 エラーが発生します。

デバッグのためには、エラーメッセージを console.log() で表示し、問題の特定に役立てます。

7. セキュリティとベストプラクティス

  • API トークンの管理: API トークンは環境変数に保存し、コード内でハードコーディングしないようにしましょう。
  • データバリデーション: 外部から受け取るデータは必ずバリデーションを行い、不正なデータが送られることを防ぎます。
  • アクセス制御: 認証と権限管理を行い、API へのアクセス制限を設けます。

8. まとめ

この記事では、Node.js を使って Kintone のレコードを操作する方法を紹介しました。KintoneRestAPIClient ライブラリを使用することで、簡単にレコードの作成、更新、取得、削除が行えます。Express を使って API を公開する方法も学びました。これを応用して、Kintone と連携するカスタムアプリケーションを開発することができます。

9. 参考リンク