複数アプリへのレコード一括処理をする
固定リンクがコピーされました
複数のアプリに対して、同時に複数のAPIを実行します。
- このAPIでは、次のAPIを実行できます。
- 最大で20件のリクエストを同時に処理できます。
- いずれかのAPIで処理が失敗した場合、それ以降のAPIは実行されず、すべての処理がロールバックされます。
- APIトークン認証を使って複数アプリを操作する場合は、それぞれのアプリで発行したAPIトークンを指定してください。
複数のAPIトークンを指定する方法は、次のページを参照してください。
APIトークン認証
- 通常のアプリ
- https://sample.cybozu.com/k/v1/bulkRequest.json
- ゲストスペースのアプリ
- https://sample.cybozu.com/k/guest/
GUEST_SPACE_ID
/v1/bulkRequest.json
同じゲストスペース内のアプリに対してのみ、一括処理できます。
そのため、次の処理は実行できません。
- ゲストスペース内のアプリと、別のゲストスペース内のアプリを一括で更新する。
- ゲストスペース内のアプリと、スペース内のアプリを一括で更新する。
- ゲストスペース内のアプリと、通常のアプリを一括で更新する。
POST
パラメーター
パラメーター名 |
型 |
必須 |
説明 |
requests |
配列 |
必須 |
実行するAPIの一覧 最大で20件のリクエストを指定できます。 |
requests[].method |
文字列 |
必須 |
実行するAPIのHTTPメソッド |
requests[].api |
文字列 |
必須 |
実行するAPIのURL |
requests[].payload |
オブジェクト |
必須 |
実行するAPIに渡すリクエストボディ
|
リクエストの例
ヘッダー
1
2
3
4
|
{
"X-Cybozu-API-Token": "API_TOKEN",
"Content-Type": "application/json"
}
|
リクエストヘッダーの詳細は共通仕様を参照してください。
kintone REST APIの共通仕様
ボディ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
{
"requests": [
{
"method": "POST",
"api": "/k/v1/record.json",
"payload": {
"app": 1972,
"record": {
"文字列1行": {
"value": "文字列1行を追加します。"
}
}
}
},
{
"method": "PUT",
"api": "/k/v1/record.json",
"payload": {
"app": 1973,
"id": 33,
"revision": 2,
"record": {
"文字列1行": {
"value": "文字列1行を更新します。"
}
}
}
},
{
"method": "POST",
"api": "/k/v1/record.json",
"payload": {
"app": 1974,
"record": {
"文字列1行": {
"value": "文字列1行を追加します。"
}
}
}
}
]
}
|
プロパティ
プロパティ名 |
型 |
説明 |
results |
配列 |
各APIリクエストに対するレスポンス 要素の並び順は、リクエストパラメーターのrequests 配列の並び順と同じです。 いずれかのAPIで処理が失敗すると、失敗したAPIに対応する要素には、エラーの結果が入ります。 それ以外の要素には{} (空のオブジェクト)が入ります。 |
レスポンスの例
成功したとき
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
{
"results": [
{
"id": "39",
"revision": "1"
},
{
"revision": "3"
},
{
"id": "39",
"revision": "1"
}
]
}
|
失敗したとき
リクエストの例における2つ目のPUTリクエストで、更新するidがない場合にエラーとなる例です。
1
2
3
4
5
6
7
8
9
10
11
|
{
"results": [
{},
{
"message": "指定したレコード(id: 33)が見つかりません。",
"id": "1505999166-1940353231",
"code": "GAIA_RE01"
},
{}
]
}
|
curlを使ったリクエスト
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
curl -X POST 'https://sample.cybozu.com/k/v1/bulkRequest.json' \
-H 'X-Cybozu-API-Token:3gdqwhk8uWTOAvKamh1jGaZGWrgIYLo5t4AXzvZy,02mfxTztsESIDudntNWhIiF092A3h63jTU0ZbVg7' \
-H 'Content-Type: application/json' \
-d '{
"requests": [
{
"method": "POST",
"api": "/k/v1/record.json",
"payload": {
"app": 1972,
"record": {
"文字列1行": {
"value": "文字列1行を追加します。"
}
}
}
},
{
"method": "PUT",
"api": "/k/v1/record.json",
"payload": {
"app": 1973,
"id": 33,
"revision": 2,
"record": {
"文字列1行": {
"value": "文字列1行を更新します。"
}
}
}
},
{
"method": "POST",
"api": "/k/v1/record.json",
"payload": {
"app": 1974,
"record": {
"文字列1行": {
"value": "文字列1行を追加します。"
}
}
}
}
]
}'
|
kintone.api()
を使ったリクエスト
kintone.api()
の詳細は、次のページを参照してください。
kintone REST APIリクエストを送信する
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
const body = {
requests: [
{
method: 'POST',
api: '/k/v1/record.json',
payload: {
app: 1972,
record: {
文字列1行: {
value: '文字列1行を追加します。'
}
}
}
},
{
method: 'PUT',
api: '/k/v1/record.json',
payload: {
app: 1973,
id: 33,
revision: 2,
record: {
文字列1行: {
value: '文字列1行を更新します。'
}
}
}
},
{
method: 'POST',
api: '/k/v1/record.json',
payload: {
app: 1974,
record: {
文字列1行: {
value: '文字列1行を追加します。'
}
}
}
}
]
};
await kintone.api(kintone.api.url('/k/v1/bulkRequest.json', true), 'POST', body);
|