複数のレコードを更新する(UPSERTモードを利用できる)

caution
警告

このページで説明しているAPIは、開発を検討中のAPIです。

アップデートオプション内の「開発中の新機能」から動作をお試しいただけます。
設定方法は、 新機能の有効/無効の切り替え手順 (External link) を参照してください。

APIに関するフィードバックを、ユースケースとともに、 kintoneの改善に協力する (External link) フォームへぜひご登録ください。

フィードバックの例
  • 「APIラボで提供されているAPIを早く本番環境で利用したい」
  • 「こういう用途で使うために、このようなAPIを提供してほしい」

複数のレコードを更新する(UPSERTモードを利用できる)

複数のレコードを更新するAPIで、UPSERTモードを利用できます。 UPSERTモードでは、1つのAPIでレコードの新規登録・更新をまとめて処理できます。

利用するには開発中の新機能の「複数のレコードを更新するREST APIに、UPSERTモードに切り替えるオプションを追加する変更」を有効にしてください。

リクエスト

パラメーター

複数のレコードを更新するAPIのパラメーターについて、仕様の変わる項目、新たに追加される項目があります。

パラメーター名 必須 説明
upsert 真偽値 省略可 UPSERTモードで実行するかどうか。trueを指定するとUPSERTモードになります。
records[].id 数値または文字列 条件必須 レコードID
UPSERTモードでは以下の動作になります。
  • 指定したレコードが存在する:更新
  • 指定したレコードが存在しない:新規登録

新規登録の場合、レコードIDはパラメーターに指定した値ではなく、新規の値が登録されます。
records[].updateKey オブジェクト 条件必須 フィールドコードと値
UPSERTモードでは以下の動作になります。
  • 指定したレコードが存在する:更新
  • 指定したレコードが存在しない:新規登録
リクエストの例
ボディ
 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
// UPSERTモードのリクエスト例
{
  "app": 4,
  "upsert": true,
  "records": [
    {
      "updateKey": {
        "field": "文字列_一行__updateKey",
        "value": "外部システムのID-12345" // 該当のレコードが存在する場合は更新、存在しない場合は新規登録される
      },
      "revision": 1,
      "record": {
        "文字列複数行": {
          "value": "あいうえお"
        }
      }
    },
    {
      "updateKey": {
        "field": "文字列_一行__updateKey",
        "value": "外部システムのID-23456"  // 該当のレコードが存在する場合は更新、存在しない場合は新規登録される
      },
      "revision": 3,
      "record": {
        "文字列複数行": {
          "value": "かきくけこ\nはひふへ"
        }
      }
    }
  ]
}

レスポンス

プロパティ

複数のレコードを更新するAPIのプロパティに加えて、新たに追加される項目があります。

プロパティ名 説明
records[].operation 文字列 レコードに対して行った処理
  • INSERT:新規登録
  • UPDATE:更新
レスポンスの例
1
2
3
4
5
6
7
// `upsert: false`のとき
{
  "records":[
    {"id": "1", "revision": "2"},
    {"id": "2", "revision": "4"}
  ]
}
1
2
3
4
5
6
7
// `upsert: true`のとき
{
  "records":[
    {"id": "3", "operation": "INSERT", "revision": "4"},
    {"id": "4", "operation": "UPDATE", "revision": "4"}
  ]
}