複数アプリへのレコード一括処理
複数のアプリに対して、同時に複数の APIをリクエストできます。
HTTP メソッド
POST
URI
https://(サブドメイン名).cybozu.com/k/v1/bulkRequest.json
ゲストスペース内のアプリの場合
https://(サブドメイン名).cybozu.com/k/guest/<スペースのID>/v1/bulkRequest.json
- 同じゲストスペース内のアプリへの一括更新のみ実行でき、次の処理は実行することができません。
- ゲストスペース内のアプリと、別のゲストスペース内のアプリへの一括更新
- ゲストスペース内のアプリと、スペース内のアプリへの一括更新
- ゲストスペース内のアプリと、通常のアプリへの一括更新
必要なアクセス権
実行するAPIの必要な権限に準ずる
リクエストパラメータ
パラメータ名 | 指定する値 | 必須 | 説明 |
---|---|---|---|
requests | 配列 | 必須 | 一括で呼ぶリクエスト。最大20件。 |
requests[].method | 文字列 | 必須 | 呼び出すAPIのメソッド |
requests[].api | 文字列 | 必須 | 呼び出すAPIのパス
|
requests[].payload | 必須 | APIに渡すパラメータ。 内容や型は呼び出すAPIに準ずる |
リクエストの例
リクエストヘッダ
POST /k/v1/bulkRequest.json HTTP/1.1 Host: example.cybozu.com:443 X-Cybozu-Authorization: QWRtaW5pc3RyYXRvcjpjeWJvenU= Authorization: Basic QWRtaW5pc3RyYXRvcjpjeWJvenU= Content-Type: application/json
- Content-Type に application/json を指定して下さい。 指定しない場合は JSON が解釈できないため、実行時エラーとなります。
ボディ
レスポンス
resultsの配列にrequestsと同じインデックスの箇所に結果が入ります。
パラメータ名 | 型 | 説明 |
---|---|---|
results | 配列 | 各APIリクエストに対するレスポンス。 requestsのArrayに並べた順番でレスポンスも並びます。 |
成功した例
失敗した例
2つ目のPUTリクエストで、更新する id がない場合にエラーとなる例です。 失敗したAPIがあればそのインデックスにのみ結果が入り、それ以降のAPIは実行されずに {} (空のObject) となります。
JavaScriptサンプル
kintone REST APIリクエストを送信する API を使ったリクエスト
XMLHttpRequest を使ったリクエスト
的外れな質問であれば申し訳ありませんが、
記事タイトルにある「複数アプリへのレコード一括処理」とは、
「同一アプリへの複数レコード一括処理」もbulkRequestで実行可能と考えてよろしいのでしょうか?
h.egami 様
ご質問ありがとうございます。
cybozu developer network 事務局 でございます。
「同一アプリへの複数レコード一括処理」もbulkRequestで実行できると思います。
同一アプリの場合は、APIトークン認証での実行が可能です。
引き続きよろしくお願い致します。
教えてください。
kintone REST APIの場合、
},
のPUTメソッドを複数コーディングしておけば、そこにコーディングされている通りのアプリ、クエリに対して一括更新が可能ということでしょうか?
栗栖 史匡 様
お世話になっております。
cybozu developer network 運営局です。
はい、この記事冒頭に示してある通りレコード更新(1件)とレコードの一括更新は複数記述することができ(最大で20リクエスト)、複数のアプリに更新を適用することが可能です。
質問させていただきたいです。
複数のアプリに対して、同時に複数の APIをリクエストできるとわかりましたが、
「Get]の場合はできないでしょうか。
chu thi hue 様
お世話になっております。cybozu developer network 運営局です。
複数アプリへのレコード一括処理で利用できるAPIは、
この記事冒頭の「次のAPIを使用できます」部分の記載の通りになります。
レコードの取得は含まれておりません。
引き続きよろしくお願い致します。
仕様について3つ疑問点があります。
1.同一のアプリに対して、1回のリクエストで登録、更新、削除を実行できますか?
(もしかして一番上の質問と同じですか?)
2.一度に登録、更新、削除できるレコードは100件までとなっていますが、以下のように100件以上の更新を一回で行うことは可能でしょうか?
3.BアプリではAアプリのレコードをルックアップしています。
例えば1つ目のAアプリへのPOST、PUTリクエストしたレコードを、2つ目のBアプリのPOST、PUTリクエストに使用できますか?
もう一つありました。
> APIトークン認証での実行は単一アプリを指定することで実行できます。
現在複数のAPIトークンを指定できるようになっていると思いますが、それでも本APIではAPIトークン認証の場合は単一アプリ指定しかできないでしょうか?
masa様
お世話になっております。cybozu developer network 運営でございます。
はい、可能です。
はい、可能です。
リクエストの順序が正しければ可能です。(今回の例ではA→Bの順)
こちらは、複数のAPIトークンを利用すれば、複数のアプリにリクエストを送信することが現在可能となっております。
(別途、ドキュメントは修正いたします)
また、恐れ入りますが、こちらのコメント欄は記事内容のフィードバック目的となっているため、
もしも仕様以外の技術的なご質問があればcybozu developer コミュニティをご活用ください。
よろしくお願い致します。
回答ありがとうございました。期待どおりでした。