Composite リクエストボディ
Composite Collection Input
- プロパティ
-
名前 型 説明 必須か省略可能 allOrNone Boolean サブ要求の処理中にエラーが発生した場合に何をすべきかを指定します。値が true の場合、Composite 要求全体がロールバックされます。最上位レベルの要求は HTTP 200 を返し、各サブ要求の応答が含まれます。
値が false の場合、失敗したサブ要求に連動しない残りのサブ要求が実行されます。連動サブ要求は実行されません。
どちらのケースでも、最上位レベルの要求は HTTP 200 を返し、各サブ要求の応答が含まれます。
省略可能 collateSubrequests Boolean API で、関係のないサブ要求を順に並べて、それらを一括処理するか (true)、しないか (false) を制御します。
サブ要求が順に並べられると、処理速度は速くなりますが、実行順序は保証されません (サブ要求の間で明示的な依存関係がある場合を除きます)。
並べ替えが無効になっている場合、サブ要求は受信された順番に実行されます。
API バージョン 49.0 以降では、デフォルト値は true です。バージョン 48.0 では、デフォルト値は false です。
各サブ要求が、次の条件を満たす場合に並べ替えることができます。- HTTP メソッドが同じ場合。
- リソースの API バージョンが同じ場合。
- リソースの親が /sobjects リソースの場合。
- サブ要求のグループに存在する sObject リソースが 5 つ以下。
API バージョン 48.0 以降で利用できます。(以前のバージョンの場合、サブ要求を並べ替えることができません)。
省略可能 compositeRequest Composite Subrequest[] 実行するサブ要求のコレクション。 必須 - JSON の例
-
1{ 2 "allOrNone" : true, 3 "collateSubrequests": true, 4 "compositeRequest" : [{ 5 Composite Subrequest 6 },{ 7 Composite Subrequest 8 },{ 9 Composite Subrequest 10 }] 11}
Composite サブ要求
- プロパティ
-
名前 型 説明 必須か省略可能 body Varies サブ要求の入力ボディ。 型は url プロパティに指定された要求に応じて異なります。
省略可能 httpHeaders Map<String, String> サブ要求に含める要求ヘッダーとその値。次の 3 つのヘッダーを除き、要求されたリソースによってサポートされる任意のヘッダーを含めることができます。 - Accept
- Authorization
- Content-Type
省略可能 method String 要求するリソースに使用するメソッド。使用できる値は POST、PUT、PATCH、GET、および DELETE (大文字と小文字を区別) です。有効なメソッドのリストは、要求するリソースに関するドキュメントを参照してください。 必須 referenceId String サブ要求の応答に対応付けられる参照 ID で、後のサブ要求で応答を参照するために使用できます。referenceId はサブ要求の本文または URL で参照できます。次の構文を使用して参照を含めます: @{referenceId.FieldName}。 参照 ID では 2 つの演算子を使用できます。
. 演算子は、応答の JSON オブジェクトの項目を参照します。たとえば、あるサブ要求で取引先レコードのデータを取得して、参照 ID Account1Data を出力に割り当てるとします。後のサブ要求で次のような取引先名を参照できます: @{Account1Data.Name}。
[] 演算子は、応答で JSON コレクションをインデックス付けします。たとえば、1 つのサブ要求で SObject Basic Information リソースを使用して取引先基本情報を要求し、参照 ID AccountInfo を出力に割り当てるとします。応答の一部に、最近作成された取引先のコレクションが含められます。最近使ったデータのコレクションで最初の取引先の ID を参照できます。例: @{AccountInfo.recentItems[0].Id}。
応答のコンテキストで意味をなす限り、各演算子を再帰的に使用できます。たとえば、取引先の複合住所項目の請求先市区郡コンポーネントを参���する場合: @{NewAccount.BillingAddress.city}。
referenceId は大文字と小文字が区別されるため、参照している項目の大文字/小文字に注意を払ってください。
必須 url String 要求するリソース。 - URL には、サブ要求がサポートするクエリ文字列パラメータを含めることができます。クエリ文字列は、URL 符号化されている必要があります。
- パラメータを使用して、レスポンスボディを絞り込むことができます。
- URL は /services/data/vXX.X/ で始まる必要があります。
必須 - JSON の例
-
1{ 2 "method" : "GET", 3 "url" : "/services/data/v38.0/sobjects/Account/describe", 4 "httpHeaders" : { "If-Modified-Since" : "Tue, 31 May 2016 18:00:00 GMT" }, 5 "referenceId" : "AccountInfo" 6} -
1{ 2 "method" : "POST", 3 "url" : "/services/data/v38.0/sobjects/Account", 4 "referenceId" : "refAccount", 5 "body" : { "Name" : "Sample Account" } 6} -
1{ 2 "method" : "GET", 3 "url" : "/services/data/v38.0/sobjects/Account/@{refAccount.id}", 4 "referenceId" : "NewAccountFields" 5} -
1{ 2 "method" : "PATCH", 3 "url" : "/services/data/v38.0/sobjects/Account/ExternalAcctId__c/ID12345", 4 "referenceID" : "NewAccount", 5 "body" : { "Name" : "Acme" } 6} - 使用方法
- referenceId は大文字と小文字が区別されるため、参照している項目の大文字/小文字に注意することが重要です。同じ項目でも、コンテキストによって異なる大文字/小文字が使用されることがあります。たとえば、レコードを作成する場合、ID 項目は応答で id と表示されます。ただし、SObject Rows リソースを使用してレコードのデータにアクセスする場合、ID 項目は Id と表示されます。前述のサブ要求の最後の例では、refAccount は 2 番目のサブ要求で POST から応答を参照するため、@{refAccount.id} 参照は有効です。@{refAccount.Id} と同様、代わりに Id を使用する場合 (すべて小文字ではなく大文字と小文字を併用)、参照 ID は大文字/小文字が間違っているため、要求の送信時にエラーが表示されます。