要求包含のその他の動作
単一要求における PATCH と POST
要求包含で POST を実行する際は、各包含リソースの操作も POST である必要があります。
要求包含で PATCH を実行する際、包含リソースの操作は POST または PATCH のいずれかにできます。
- 既存のリソースを変更して、関連リソースを新規作成する場合、包含リソースの操作は POST となります。
- 既存のリソースを変更して、既存の関連リソースを変更する場合、包含リソースの操作は PATCH となります。
1 つの単位としての要求の成功または失敗
POST または PATCH で要求包含を使用すると、ルートリソースの操作またはいずれかの包含リソースの操作のどちらかでエラーが発生する可能性があります。いずれかの操作が失敗すると、要求全体が失敗し、オブジェクトで POST や PATCH は行われません。
包含リソースはルートリソース以外のリソースの参照が不可能
要求包含を使用する際は、各包含リソースで独自の操作と URI を指定する必要があります。URI は、this というキーワードを使用してルートリソースを参照するものとされます。これにより、包含リソースの POST または PATCH が行われると、包含リソースはルートリソースに関連付けられます。
例えば、POST でクレームと備考・経緯を作成するとします。エクスポージャーの URI の値は、/claim/v1/claims/this/notes などになります。
構文の観点からは、ルートリソースではなくその他の既存リソースに包含リソースを添付しようとすることもありえます。例えば、備考・経緯の URI ではルートリソースを参照する代わりに、/claim/v1/claims/cc:200/notes などの既存クレームを参照できます。この URI は、「備考・経緯を作成して、この POST のルートリソースではなく、既存クレームの cc:200 に添付すること」を示しています。
Cloud API ではこれはできません。ルートリソース以外のものに包含リソースの POST または PATCH を試行すると、操作の失敗の原因となります。