1. はじめに
Kintone は、企業向けに提供されているクラウド型の業務アプリケーション開発プラットフォームです。データベースを使ったアプリケーションを簡単に作成でき、柔軟にカスタマイズできます。Kintone の強力な特徴の一つは、REST API を使って外部から Kintone のデータを操作できる点です。
本記事では、Node.js 環境を使って、Kintone のレコードを操作する方法を紹介します。Node.js のサーバーから Kintone API を利用して、レコードの作成、更新、取得、削除を行う方法をステップバイステップで解説します。
🌟ちょっとお知らせ🌟
kintoneユーザーの皆さん!
エムザスの kintoneプラグイン はもう試しましたか?🤔
登録不要&無料で、ほとんどの機能が今すぐお試しいただけます✨
今すぐお試ししたい方はこちらから!
さらに、お客様のドメインで 無料で3ヶ月間、すべての機能 を試すこともできます!🎉
以下のリンクからお申し込みください👇
お客様のドメインでじっくりお試ししたい方はこちらから!
それでは、本題に入ります!
2. 必要な準備
Kintone 環境の設定
Kintone を使用するには、まず Kintone アカウントとアプリケーションを作成する必要があります。
- Kintone にサインインし、新しいアプリを作成します。
- 作成したアプリに必要なフィールド(テキスト、数値、日付など)を追加します。
- API トークン を生成します。これにより、外部アプリケーションから API を通じてアプリのデータを操作できるようになります。
Node.js 環境の準備
- Node.js と npm(Node.js のパッケージマネージャー) がインストールされていることを確認します。インストールされていない場合は、公式サイトhttps://nodejs.org/)からインストールできます。
- プロジェクトを作成するため、以下のコマンドで 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 と連携するカスタムアプリケーションを開発することができます。