ペイロード構造の標準化
呼び出し元アプリケーションとシステム API との通信の管理は、ペイロード内の情報が標準的な構造に従っている場合は比較的容易です。システム API には、要求ペイロードと応答ペイロードの両方に標準の構造があります。構造はデータエンベロープによって定義されますし、要求スキーマと応答スキーマによっても定義されます。
全エンドポイント共通の情報の標準化
データエンベロープは、JSON をラップするラッパーであり、システム API との間で送受信されます。標準のペイロード構造を維持するために、システム API では、DataEnvelope と DataListEnvelope の 2 つのデータエンベロープを使用します。
DataEnvelope を使用して、単一要素の情報の形式を標準化します。data プロパティを次のプロパティで指定します。対象プロパティは、checksum、id、links(単一要素)、method、refid、related、type、および uri です。概要レベルでは、単一要素のペイロードの形式は以下のようになります。
{
"data": {
"checksum": ...,
"id": ...,
"links": ...,
"method": ...,
"refid": ...,
"related": ...,
"type": ...,
"uri": ...
}
}
}
DataListEnvelope を使用して、コレクション情報の形式を標準化します。データセクションと兄弟関係にある以下のプロパティを指定します。
count、links(コレクション)、および total プロパティを指定します。概要レベルでは、単一要素のペイロードの形式は以下のようになります。
{
"count" ...,
"data": [
{ properties_for_element_1 },
{ properties_for_element_2 },
...
],
"links": ...,
"total": ...
}
各プロパティが各ペイロードに表示されるとは限りません。プロパティが特定のペイロードに表示されない場合の理由はさまざまです。例:
refidなどのプロパティは要求にのみ適用され、応答ペイロードには表示されません。countなどのプロパティは応答にのみ適用され、要求ペイロードには表示されません。relatedなどのプロパティはデフォルトでは表示されず、要求に特定のクエリパラメータが含まれる場合にのみ表示されます。
特定のエンドポイント固有情報の標準化
DataEnvelope と DataListEnvelope で用意している標準形式の情報は、すべての要求ペイロードと応答ペイロードに適用可能です。ただし、さまざまなエンドポイントがさまざまな種類のリソースとやりとりを行います。各エンドポイントで、ペイロードの一部が特定の種類のリソースについての情報を提供する必要があります。
これに対処するため、システム API では要求スキーマと応答スキーマも使用します。要求スキーマは、有効な構造の定義に使用されるスキーマであり、特定セットのエンドポイントの要求ペイロードで有効な構造です。同様に、応答スキーマは、有効な構造の定義に使用されるスキーマであり、特定セットのエンドポイントの応答ペイロードで有効な構造です。
要求スキーマと応答スキーマは階層化されています。例えば、応答の場合、GET /activity/{activityId} エンドポイントは ActivityResponse スキーマを使用します。このスキーマには、ActivityData と ActivityResponseInclusions の 2 つの子スキーマがあります。
要求スキーマと応答スキーマで DataEnvelope または DataListEnvelope を拡張します。これにより、すべてのエンドポイントに関連する情報が、標準的な方法でペイロードに表示されます。
また、要求スキーマと応答スキーマは、ペイロードの attributes プロパティも定義します。ペイロードのリソース固有情報を含むスキーマにこのプロパティは関連付けられます。例えば、GET /activity/{activityId} エンドポイントで ActivityData 子スキーマの attributes プロパティを指定します。このプロパティは Activity スキーマに関連付けられ、このスキーマには activityPattern や activityType などのアクティビティ固有フィールドが含まれます。その結果、GET /activity/{activityId} エンドポイントの応答ペイロードの構造は以下のようになります。
{
"data": {
"checksum": ...,
"attributes" : {
"activityPattern": ... ,
"activityType": ...,
...},
"id": ...,
"links": ...,
"method": ...,
"refid": ...,
"related": ...,
"type": ...,
"uri": ...
}
}
}
要求スキーマの表示
Swagger UI を使用して、特定エンドポイントで要求ペイロードの構造を確認できます。これには、スキーマの階層や各スキーマの情報の種類が含まれます。情報は、エンドポイントの[モデル]タブの本文パラメータの説明に表示されます。
Swagger UI での要求スキーマの表示
手順
- ClaimCenter を起動します。
-
Web ブラウザで、対象となる API の Swagger UI に移動します。
- 詳細については、Swagger UI を使用した API 定義の表示を参照してください。
-
対象となるエンドポイントの操作ボタンをクリックします。Swagger UI で、エンドポイント名の下に、そのエンドポイントの詳細が表示されます。
- 例えば、POST
/activities/{activityID}/notesの要求スキーマを表示するには、そのエンドポイントの[POST]ボタンをクリックします。
- 例えば、POST
- 下にスクロールして、[パラメータ]セクションの[本文]エントリを表示します。[モデル]タブに、このエンドポイントのデータエンベロープの階層と、各データエンベロープの内容が表示されます。