基本応答のペイロード構造
後続のセクションでは、基本応答の応答ペイロードについて説明します。この説明では、基本応答とは、特定の要素またはコレクションに関する情報を含んでいる応答ですが、包含リソースは含まない応答です。包含リソースについては、包含リソースが含まれる応答のペイロード構造で説明しています。
基本的な応答の構造
基本的な応答の高度な構造は、以下に示すとおりです。最初と最後のプロパティ(count
とコレクションレベルの links
)は、コレクションペイロードでのみ使用されます。その他すべてのプロパティは、要素ペイロードとコレクションペイロードの両方で使用されます。
(注意:JSON ではコメントをサポートしません。ただし、コードを明確化するため、擬似コメントが追加されています。各擬似コメントの前にはハッシュタグ(#)が付きます。)
count
プロパティ
count
プロパティは、ペイロードで返される要素の数を特定します。コレクションを含む応答でのみ使用されます。
data
セクション
data
セクションには、エンドポイントが返すリソースについての情報が含まれます。各リソースについて、以下のサブセクションがデフォルトで表示されます。
- attributes:各リソースのフィールドにおける名前/値ペアのセット
- checksum:各リソースのチェックサム値
- links:各応答でアクションの実行に使用できる HTTP リンク
エンドポイントが単一要素を返す場合、data セクションには attributes
、checksum
、および links
の単一セットが含まれます。エンドポイントがコレクションを返す場合、data セクションには、各リソースの attributes
、checksum
、および links
が 1 セットずつ含まれます。
attributes
セクション
attributes
サブセクションに一覧表示される内容は、リソースに返されるフィールドとそのフィールドの値です。例:
各リソースには、返されるフィールドのデフォルトセットがあります。これは通常、返すことができるすべてのフィールドのサブセットです。fields
クエリパラメータを使用して、返されるフィールドのデフォルトセットを上書きできます。詳細については、GET を行うフィールドの指定を参照してください。
単純な値
フィールドがスカラーの場合、その値がコロンの後に一覧表示されます。例:
ID プロパティ
各リソースには id
フィールドがあります。この値は、ClaimCenter のオブジェクトのパブリック ID と同じになります。これは通常、デフォルトで返されるフィールドの 1 つです。例:
この値は、例えば以下のように、特定の要素を命名するエンドポイントでも使用されます。
日付と日時の値
日付と日時の値は、以下の形式で文字列としてペイロードに表示されます。- 日時:
YYYY-MM-DDThh:mm:ss.fffZ
- 日付:
YYYY-MM-DD
上記の内容に関する説明を以下に示します。
YYYY
は年MM
は月DD
は日- 日付の値については、以下のようになります。
T
は日付部分と時間部分を分けるリテラル値hh
は時間mm
は分ss
は秒fff
は秒の小数Z
は「ゼロ時のオフセット」を示すリテラル値。「国際標準時」(UTC)とも呼ばれます。
例:
"dueDate": "2020-03-23T07:00:00.000Z",
インラインリソース
一部の応答ペイロードには、インラインリソースが含まれます。インラインリソースは、ルートリソースではないリソースですが、一部のフィールドがルートリソースからのフィールドと共に、attributes セクションにデフォルトで一覧表示されます。インラインリソースの形式は以下のとおりです。
インラインリソースは応答スキーマで宣言されます。スカラー値と同様に、fields
クエリパラメータを使用して、応答で返すインラインリソースとインラインリソースフィールドを制御できます。詳細については、GET を行うフィールドの指定を参照してください。
大まかに言うと、インラインリソースには、タイプリスト、金額値、単純参照、複合参照の 4 種類があります。
タイプリストには、code フィールドと name フィールドが一覧表示されます。いずれも TypeCodeReferences
スキーマを使用します。例:
金額値は、通貨フィールドと金額フィールドを含む複合値です。 例:
(Cloud API でこのデータ型は MonetaryAmount
と呼ばれます。ClaimCenter ではこれらの値は実際には CurrencyAmount
データ型を使用して保存されることに注意してください。)
単純参照は関連オブジェクトへの参照であり、SimpleReferences
スキーマを使用します。このスキーマには、
displayName
、id
、refId
、type
、および uri
の各フィールドのみが含まれます。デフォルトで、大多数のエンドポイントは displayName
と id
のみを返します。
例えば、以下のスニペットでは、assignedGroup
と assignedUser
が単純参照です。
複合参照は関連オブジェクトへの参照であり、SimpleReferences
スキーマより複雑なスキーマを使用します。例えば、連絡先の主な住所が応答ペイロードに追加されると、Address
スキーマが使用され、多数のフィールドが含まれます。
Null 値を含むフィールドの省略
応答ペイロードには、値が NULL でないフィールドのみが含まれます。NULL 値を含むフィールドは、応答ペイロードから省略されます。
あるフィールドが応答ペイロードにあると期待されているのに欠落している場合、その理由はたいてい、その値が NULL だったためです。
checksum
フィールド
checksum
フィールドには、リソースの「バージョン」を特定する値が一覧表示されます。リソースがデータベースレベルで変更される場合は必ず、新しいチェックサム値が割り当てられます。データ変更のプロセスでは、チェックサムを使用して、リソースで読み取りが行われた時刻と変更が行われた時刻との間に、他のプロセスによって変更が行われていないことを確認できます。
詳細については、ロストアップデートとチェックサムを参照してください。
links
サブセクション(要素)
特定の要素に対して実行できるアクションを特定するパスのセットがあれば、data
セクションの links
サブセクションで、一覧表示します。各リンクには名前、href
プロパティ、およびメソッドのリストがあります。呼び出し元アプリケーションはこれらのリンクを使用して、そのリソースに対して実行する追加アクションの HTTP 要求を作成できます。
data
セクションの links
サブセクションは、Cloud API で Hypermedia as the Engine of Application State(HATEOAS)の制約を実施する方法の 1 つです。例えば、ある呼び出し元アプリケーションがアクティビティ xc:20 を取得するとします。このアプリケーションに付与されている権限により、このアクティビティをアサインして、アクティビティに関連付けられた備考・経緯を表示できます。アクティビティ xc:20 の links セクションには以下の内容が表示されます。
self
リンクは、リソースそのものへのリンクです。self
リンクが有用な場合は、呼び出し元アプリケーションがリソースのリストを受信してリストで特定リソースへのナビゲーションを行う場合です。
特定のオブジェクトに対して、ビジネスアクションを実行するリンクが表示される場合は、一定のオブジェクト状態が前提となるアクションが適切な場合のみと、アクションの実行に十分な権限が呼び出し元にある場合のみです。例えば、アクティビティをクローズするリンクは、アクティビティがクローズされている場合に表示されません。同様に、アクティビティをアサインするリンクは、アクティビティのアサインに必要な権限が呼び出し元にない場合は表示されません。
コレクションレベルの links
セクション
応答にコレクションが含まれる場合、ペイロードの末尾に links
セクションが含まれます。このセクションは、data
セクションと兄弟関係にあります。大規模なリソースセットでページをめくるように移動するために、prev
リンクや next
リンクなど、コレクション全体に関連するリンクが含まれます。
links
セクションは、Cloud API で Hypermedia as the Engine of Application State(HATEOAS)の制約を実施する方法の 1 つです。