連携グラフ
連携グラフは、Guidewire App Events で使用されるデータモデルグラフです。送信連携の一環として外部アプリケーションに送信される一連のビジネス情報を定義します。例えば、クレームグラフは、クレームに関して送信される情報を定義します。連携グラフの詳細については、『App Events Guide』を参照してください。
カスタムエンティティのエンドポイントを生成する際、リソースに親リソースが含まれていて、その親リソースが連携グラフに属する場合には、連携グラフにカスタムリソースを追加することもできます。グラフにカスタムリソースを追加するには、最後のプロンプト(「Should <CustomEntity> be added to an integration graph?(連携グラフに <CustomEntity> を追加する必要がありますか)」)に「y」と回答します。追加のプロンプトで、グラフの名前を尋ねられます。
連携グラフにカスタムエンティティが追加されると、REST エンドポイントジェネレータは次のファイルを変更します。
<graphName>_graph_ext-1.0.schema.jsonファイル<graphName>_graph_ext-1.0.mapping.jsonファイルshared_ext-1.0.apiconfig.yamlファイル
グラフスキーマファイルをコンフィギュレーションする必要はありません。ただし、グラフマッパーファイルと apiconfig.yaml ファイルにはコンフィギュレーションが必要です。
グラフスキーマファイル
グラフスキーマファイルは、連携グラフの構造を定義します。特定のグラフにカスタムリソースを追加するよう指定すると、REST エンドポイントジェネレータは対応する <graphName>_graph_ext-1.0.schema.json ファイルにコードを追加します。
例えば、CustomEntity_Ext データモデルエンティティのエンドポイントを生成して、対応するリソースをクレームグラフに追加したとします。claim_graph_ext-1.0.schema.json ファイルには、次の(太字で示した)コードが追加されます。
{
"$schema": "http://json-schema.org/draft-07/schema#",
"x-gw-combine": [
"ext.claim.v1.claim_combined_ext-1.0",
"gw.content.cc.claim.v1.claim_graph_content-1.0"
],
"definitions": {
"Claim": {
"properties": {
"customEntitiesExt": {
"title": "Custom entities ext",
"description": "The collection of custom entities ext on this claim",
"type": "array",
"items": {
"$ref": "#/definitions/CustomEntityExt"
}
}
}
}
}
}
通常、グラフスキーマファイルにコンフィギュレーションは不要です。
グラフマッパーファイル
グラフマッパーファイルは、連携グラフのプロパティに情報が書き込まれる方法を定義します。特定のグラフにカスタムリソースを追加するよう指定すると、REST エンドポイントジェネレータは対応する <graphName>_graph_ext-1.0.mapping.json ファイルにコードを追加します。
例えば、CustomEntity_Ext データモデルエンティティのエンドポイントを生成して、対応するリソースをクレームグラフに追加したとします。claim_graph_ext-1.0.mapping.json ファイルには、次の(太字で示した)コードが追加されます。
{
"schemaName": "ext.claim.v1.claim_graph_ext-1.0",
"combine": [
"ext.claim.v1.claim_combined_ext-1.0",
"gw.content.cc.claim.v1.claim_graph_content-1.0"
],
"mappers": {
"Claim": {
"schemaDefinition": "Claim",
"root": "entity.Claim",
"properties": {
"customEntitiesExt": {
"path": "TODO RestEndpointGenerator provide a collection
of CustomEntities_Ext",
"mapper": "#/mappers/CustomEntityExt"
}
}
}
}
}
カスタムエンティティのコレクションプロパティの path を指定して、ファイルをコンフィギュレーションする必要があります。これは通常、親データモデルエンティティの対応する配列に設定されます。
前の例に続いて、claim_graph_ext-1.0.mapping.json ファイルのパス属性を次のように設定する必要があります。
{
"schemaName": "ext.claim.v1.claim_graph_ext-1.0",
"combine": [
"ext.claim.v1.claim_combined_ext-1.0",
"gw.content.cc.claim.v1.claim_graph_content-1.0"
],
"mappers": {
"Claim": {
"schemaDefinition": "Claim",
"root": "entity.Claim",
"properties": {
"customEntitiesExt": {
"path": "Claim.CustomEntities_Ext",
"mapper": "#/mappers/CustomEntityExt"
}
}
}
}
}
apiconfig ファイル内のマッピング
shared_ext-1.0.apiconfig.yaml は、共有の要素リソースとコレクションリソースを Gosu Resource ファイルにマッピングします。また、連携グラフの URI マッピングも指定します。グラフにカスタムリソースを追加するよう指定すると、REST エンドポイントジェネレータは対応する shared_ext-1.0.apiconfig.yaml ファイルにコードを追加します。
CustomEntity_Ext データモデルエンティティのエンドポイントを生成して、対応するリソースをクレームグラフに追加したとします。shared_ext-1.0.apiconfig.yaml ファイルには、次の(太字で示した)コードが追加されます。entityURIMappings:
CustomEntity_Ext:
uri: "${parentUri}/custom-entities-ext/${CustomEntity_Ext.RestId}"
parent: "TODO RestEndpointGenerator link to the parent of CustomEntity_Ext"カスタムエンティティの parent を指定して、ファイルをコンフィギュレーションする必要があります。これは通常、カスタムデータモデルエンティティの対応する外部キーに設定されます。
前の例に続いて、shared_ext-1.0.apiconfig.yaml ファイルのパス属性を次のように設定する必要があります。
entityURIMappings:
CustomIEntity_Ext:
uri: "${parentUri}/custom-entities-ext/${CustomEntity_Ext.RestId}"
parent: "CustomEntity_Ext.Claim"