生成生成エンドポイントのマッピングファイルのコンフィギュレーション
Cloud API のコンテキストでは、データモデルエンティティから対応要素リソースに情報をマップする方法を定義するマッパーが、マッピングファイルに含まれています。この情報は、GET で使用されるだけでなく、POST や PATCH の応答でも使用されます。

以降のセクションでは、生成エンドポイント用マッピングファイルのコンフィギュレーションの概要を示します。マッピングファイルのコンフィギュレーション方法の詳細については、スキーマコンフィギュレーションの概要を参照してください。
マッピングファイル構文の概要
1 つ以上の API リソースが列挙される mappers セクションが、マッピングファイルにあります。リソースごとに、以下の属性が指定されます。
- リソースの構造を定義する
schemaDefinition- これは、schema.json ファイル内で宣言されたスキーマを参照します。
- このリソースに関するマッピング情報の
rootとして機能するデータモデルエンティティ。 propertiesのリスト- 各プロパティに 1 つの
path属性が含まれています。これは、プロパティの値を生成するために使用される Gosu 式です。通常、root属性で定義されたエンティティからの値をこの式で返します。 - プロパティの特性によっては、追加の属性が存在する場合があります。
- 各プロパティに 1 つの
例えば、ベースコンフィギュレーションの Activity リソースでマッパーの部分を以下に示します。
"Activity": {
"schemaDefinition": "Activity",
"root": "entity.Activity",
"properties": {
"closeDate": {
"path": "Activity.CloseDate"
},
"description": {
"path": "Activity.Description"
},
"mandatory": {
"path": "Activity.Mandatory"
},
...
次の点に注目します。
- 名前が
Activityであるスキーマでこのリソースは定義されます(このスキーマは、他の schema.json ファイルで定義されます)。 - リソースマッピングのルートは
entity.Activityです。 - リソースのインスタンスごとに以下のようになります。
closeDateプロパティがActivityエンティティのCloseDateフィールドに設定されます。descriptionプロパティがActivityエンティティのDescriptionフィールドに設定されます。mandatoryプロパティがActivityエンティティのMandatoryフィールドに設定されます。
マッピングファイルにおける変更
ベースコンフィギュレーションには、API 固有の拡張マッピングファイルのセットが含まれています。これらのファイルの目的は、特定の API 用のカスタムリソースに関するマッパー情報を定義することです。「<API>_ext-1.0.mapping.json」のパターンを使用してこれらのファイルに名前が付けられます。<API> は API の内部名です。例えば、common_ext-1.0.mapping.json ファイルを使用して、Common API でカスタムリソースに関するマッパー情報を定義します。拡張マッピングファイルには、Studio で integration -> mappers -> ext -> <API>.v1 ノードを介してアクセスできます
カスタムエンティティ用のエンドポイントを生成すると、REST エンドポイントジェネレータが以下のコードを関連の拡張マッピングファイルに追加します。
"<resourceName>": {
"schemaDefinition": "<schemaNameForResource>",
"root": "entity.<customEntity>",
"properties": {
// TODO RestEndpointGenerator : Add mapper properties here
"id": {
"path": "<customEntity>.RestId"
}
}
}
CustomEntity_Ext エンティティ用のエンドポイントを生成すると、以下が拡張マッピングファイルに追加されます。 "CustomEntityExt": {
"schemaDefinition": "CustomEntityExt",
"root": "entity.CustomEntity_Ext",
"properties": {
// TODO RestEndpointGenerator : Add mapper properties here
"id": {
"path": "CustomEntity_Ext.RestId"
}
}
}REST エンドポイントジェネレータで提供する情報は唯一のプロパティに関する情報であることに注意してください。
それは id です。開発者は以下の作業を担当します。
- カスタムエンティティで GET(および POST や PATCH の応答)が利用できる必要があるフィールドの決定。
- これらのフィールドに関するマッパー情報の追加。
例えば、CustomEntity_Ext エンティティに次の 3 つのフィールドがあるとします。
CustomDescription(文字列型)IsActive(Boolean 型)ExpirationDate(日付時刻型)
CustomDescription と IsActive を GET(および POST や PATCH の応答)で使用できる必要があることを開発者が決定します。以下の太字で示されているコードを開発者は追加する必要があります。
"CustomEntityExt": {
"schemaDefinition": "CustomEntityExt",
"root": "entity.CustomEntity_Ext",
"properties": {
// TODO RestEndpointGenerator : Add mapper properties here
"id": {
"path": "CustomEntity_Ext.RestId"
},
"customDescription": {
"path": "CustomEntity_Ext.CustomDescription"
},
"isActive": {
"path": "CustomEntity_Ext.IsActive"
}
}
}
また、ExpirationDate を GET(および POST や PATCH の応答)で使用禁止にする必要があることを開発者が決定します。このフィールドはスキーマから省略された可能性が高いです。したがって、マッパーからも省略されています。
プロパティパスのマッピング構文
スカラー
path プロパティをデータモデルエンティティのフィールドに設定します。他のプロパティは必要ありません。次に例を示します。 "description": {
"path": "Activity.Description"
},複合データ型
Typekey、MonetaryAmount、CurrencyAmount、SpatialPoint など)のマッピングを定義する場合、path 属性と追加 mapper 属性の両方を含める必要があります。mapper 属性でマッパーを指定しますが、複合データ型がそのスキーマにマップされる方法をこのマッパーで定義します。下の表に、一般的な複合データ型の mapper 属性値を示します。| 複合データ型 | マッパー値 |
| Typekey | #/mappers/TypeKeyReference |
| MonetaryAmount | #/mappers/MonetaryAmount |
| CurrencyAmount | #/mappers/CurrencyAmount |
| SpatialPoint | #/mappers/SpatialPoint |
Activity データモデルエンティティの AssignmentStatus フィールドのマッピングは次のようになります。 "assignmentStatus": {
"path": "Activity.AssignmentStatus",
"mapper": "#/mappers/TypeKeyReference"
},