Test Util API

クレームを作成するには、保険契約管理システムからの情報が必要です。一部の状況では、外部ユーザー管理システムまたは連絡先管理システムからの情報も必要な場合があります。ただし、開発中、ClaimCenter のインスタンスには、これらのシステムにアクセスできない場合があります。

開発を容易にするために、Cloud API には Test Util API が用意されています。Test Util API は一種の API であり、開発時にテストを容易にする機能が用意されています。Test Util API を使用して、次の処理を実行できます。

  • テスト保険契約の作成と検索
  • テスト連絡先とテストユーザーの役割の作成と検索
  • テストユーザーの作成と検索
警告: Test Util API は開発環境のみで使用することを意図しています。実稼働システムでは Test Util API は使用しないでください。

Test Util API 情報の表示

Test Util API は、ClaimCenter 環境が ci-test に設定されている場合のみ使用できます。この環境を設定できるのは起動時のみです。特定の環境で ClaimCenter を起動する方法については、『システム管理ガイド』を参照してください。

Studio で ClaimCenter 環境を設定

このタスクについて

Studio では、Studio から起動した場合に常に使用するよう ClaimCenter の環境を指定できます。

手順

  1. Studio で[実行] > [コンフィギュレーションの編集]を選択します。Studio で[デバッグ実行のコンフィギュレーション]ダイアログボックスが開きます。
  2. 左側のペインの[サーバー]をクリックします。
  3. [VM Options]フィールドの末尾に以下を追加します。 -Dgw.cc.env=ci-test
    • [VM Options]フィールドに env 設定がすでに含まれている場合、既存の設定を ci-test に置き換えます。
  4. [OK]をクリックします。

タスクの結果

Studio からサーバーを起動すると常に、ci-test 環境を使用して開始されます。これには、以下が含まれます。
  • [実行]メニューからサーバーを起動する場合。
  • Studio ユーザーインターフェイスの右上隅にある[実行]ツールを使用してサーバーを起動する場合。

Swagger UI で Test Util API を表示

このタスクについて

ci-test 環境を使用して ClaimCenter を起動すると、Swagger UI を使用して Test Util API を表示できます。

手順

  1. ci-test 環境を使用して、ClaimCenter を起動します。
  2. Web ブラウザに Swagger UI の URL を入力します。Swagger UI ツールが読み込まれます。
    • URL の形式は <applicationURL>/resources/swagger-ui/ です。
    • 例えば、ClaimCenter のローカルインスタンスには、http://localhost:8080/cc/resources/swaggerui/ を使用します。
  3. Swagger UI インターフェイスの上部のテキストフィールドに次の URL を入力します。
    • <applicationURL>/rest/test-util/v1/swagger.json
  4. [Explore]をクリックします。

テスト保険契約データの作成

TestSupportPolicyPlugin クラス

事故受付プロセスの最初に、事故受付を実行しているユーザーやサービスが関連保険契約を特定する必要があります。特定後、ClaimCenter がその保険契約に関する情報を独自の保険契約グラフにコピーします。これらの処理は、保険契約の検索保険契約の取得と呼ばれます。これらのプロセスの実行方法の詳細は、IPolicySearchAdapter プラグインで指定されています。

ベースコンフィギュレーションには、TestSupportPolicyPlugin という名前の Gosu クラスをポイントする IPolicySearchAdapter プラグインの実装が含まれています。この実装は、ci-test 環境で ClaimCenter が開始された場合にのみ使用されます。

Test Util エンドポイント

ベースコンフィギュレーションでは、Test Util API のエンドポイントへのアクセスを可能にする API 役割はありません。したがって、テスト保険契約を作成できる唯一のユーザーはスーパーユーザーの su です。このユーザーには本質的にすべてのエンドポイントへのアクセス権があります。

既存の API 役割をコンフィギュレーションして、これらのエンドポイントへのアクセスを他のユーザーに拡大できます。API 役割の詳細については、『Cloud API 認証ガイド』を参照してください。

テスト保険契約の作成

/test-util/v1/policies エンドポイントを使用して、テスト保険契約を作成できます。このエンドポイントを実行すると、ペイロードに指定されているデータが、システム API により取得され、TestSupportPolicyPlugin クラスのデータに追加されます。これにより、クレームとクレームデータを作成する後続の呼び出しで、テスト保険契約とそのデータを参照できます。

テスト保険契約の作成に最低限必要なデータはありません。空の要求ペイロードで保険契約を作成する場合は、保険契約は次の属性を持ちます。

  • 保険契約の通貨は ClaimCenter のデフォルト通貨に設定されます。
  • 始期日は現在の日付に設定されます。
  • 終期日は現在の日付の 1 年後に設定されます。
  • 保険契約は未検証の保険契約です。

サンプルデータで保険契約をモデルとして使用して、テスト保険契約を構築できます。そのためには、保険契約が適切なモデルであるクレームのクレーム ID を識別します。次に、/claims/{claimId}/policy で始まる任意のエンドポイントで GET を実行して、JSON ペイロードでのデータの構成方法を確認します。要求ペイロードに指定できるデータの詳細については、Swagger UI を参照してください。

各保険契約に一意の保険契約番号の使用

テスト保険契約を作成する場合、保険契約番号を既存の保険契約番号と異なるものにするようにシステム API からは要求されません。ただし、同一の保険契約番号を持つ保険契約が複数ある場合、その保険契約番号を使用してクレームを作成できません。というのは、クレームを作成するシステム API では複数の保険契約を検出するため、どの保険契約を使用するのか識別できないからです。

テスト保険契約データの例

後続のセクションでは、使用頻度が高いいくつかのフィールドの例を説明します。単一のペイロードにコンパイルされたこれらの例にアクセスするには、サンプル保険契約ペイロードを参照してください。

一般的なスカラーフィールド

次のコードブロックは、2020 年 1 月 1 日から 2021 年 1 月 1 日まで有効な保険契約を作成します。その保険契約番号は FNOL-POLICY で、検証済みの保険契約です。

{
  "data": {
    "attributes": {
      "effectiveDate": "2020-01-01T07:00:00.000Z",
      "expirationDate": "2021-01-01T07:00:00.000Z",
      "policyNumber": "FNOL-POLICY",
      "verifiedPolicy": true
    }
  }
}

一般的なタイプキーのフィールド

次のコードブロックは、有効な個人用自動車の保険契約を作成します。(つまり、保険契約は解約されていません。)

{
  "data": {
    "attributes": {
      "policyType": {
        "code": "PersonalAuto"
      },
      "status": {
        "code": "inforce"
      }
  }
}

保険契約の連絡先

次のコードブロックでは、個人用の保険契約を作成します。被保険者名は Ray Newton さん、住所はカリフォルニア州サウスパサデナ市ケンジントンロード #1A、287 番地(287 Kensington Rd. #1A, South Pasadena, CA)です。この連絡先の保険契約管理の ID は、ab:0001-1 です。

テスト保険契約を作成する場合、要求包含を使用して保険契約の連絡先を指定します。このアプローチの詳細については、要求包含を参照してください。

{
  "data": {
    "attributes": {
      "policyContacts": [
        {
          "contact": {
            "refid": "rayNewton"
          },
          "roles": [
            {
              "code": "insured"
            }
          ]
        }
      ]
    }
  },
  "included": {
    "Contact": [
      {
        "attributes": {
          "firstName": "Ray",
          "lastName": "Newton",
          "primaryAddress": {
            "addressLine1": "287 Kensington Rd. #1A",
            "city": "South Pasadena",
            "country": "US",
            "postalCode": "91145",
            "state": {
              "code": "CA"
            }
          },
          "subtype": {
            "code": "Person"
          },
          "policySystemId": "ab:0001-1"
        },
        "method": "post",
        "refid": "rayNewton",
        "uri": "/test-util/v1/contacts"
      }

    ]
  }
}

保険所在地

次のコードブロックでは、保険契約の所在地を作成します。

{
  "data": {
    "attributes": {
      "policyLocations": [
        {
          "address": {
            "addressLine1": "287 Kensington Rd. #1A",
            "city": "South Pasadena",
            "postalCode": "91145",
            "state": {
              "code": "CA"
            }
          }
        }
      ]
    }
  }
}

保険契約の補償

次のコードブロックでは、保険契約の補償を作成します。補償には、補償タイプ(タイプキーフィールド)、および 2 つの通貨の金額フィールドがあることに注意してください。保険契約には、リスクユニット補償も含めることができます。これについては、次のセクションで説明します。

{
  "data": {
    "attributes": {
      "policyCoverages": [
        {
          "coverageType": {
            "code": "PALiabilityCov"
          },
          "incidentLimit": {
            "amount": "30000.00",
            "currency": "usd"
          },
          "exposureLimit": {
            "amount": "15000.00",
            "currency": "usd"
          }
        }
      ]
    }
  }
}

リスクユニット

リスクユニットとは、保険契約の補償対象(車両や建物など)のことです。次のコードブロックでは、リスクユニットを作成します。保険契約の保険商品の種類に応じて、さまざまなリスクユニットがあります。その他の例が個人用自動車の保険契約に由来しているため、この例は車両のリスクユニットになります。

リスクユニットには、通常、リスクユニット補償(車両衝突補償など)が付随します。補償ごとに、coverageType を指定する必要があります。これは、coverageType タイプリストの値に設定します。補償にはまた、補償内容(免責金額など)が存在する場合があります。補償内容を組み込む場合、各補償内容は、covTermPatterncovTermPattern タイプリストのコードに設定)および covTermSubtypecovTerm タイプリストのコードに設定)を含む必要があります。追加のフィールドは、補償内容の種類に応じて必要になる場合があります。たとえば、保険金支払額の補償内容には、financialAmount フィールドが必要です。

{
  "data": {
    "attributes": {
      "vehicleRiskUnits": [
        {
          "RUNumber": 1,
          "vehicle": {
            "licensePlate": "1HGJ465",
            "make": "Saturn",
            "model": "SL",
            "policySystemId": "pcveh:0001-1",
            "state": {
              "code": "CA"
            },
            "vin": "1GV234TV347463345",
            "year": 1997
          },
          "coverages": [
            {
              "coverageType": {
                "code": "PACollisionCov"
              },
              "covTerms": [
                {
                  "covTermPattern": {
                    "code": "PACollDeductible"
                  },
                  "covTermSubtype": "FinancialCovTerm",
                  "financialAmount": {
                    "amount": "500.00",
                    "currency": "usd"
                  }
                }
              ],
              "incidentLimit": {
                "amount": "15000.00",
                "currency": "usd"
              }
            }
          ]
        }
      ]
    }
  }
}

チュートリアル:Test Util API を使用して保険契約を作成する方法

このチュートリアルの前提事項は、Postman の環境を設定してあり適切なサンプルデータセットを用意していることです。詳細については、チュートリアル:Postman 環境のセットアップを参照してください。

このチュートリアルでは、TestSupportPolicyPlugin クラスに保存された保険契約データに保険契約を追加します。その後、クレームを新規作成する場合に、この保険契約を参照できます。

  1. まだ実行していない場合は、Studio をコンフィギュレーションし、ci-test 環境を使用して ClaimCenter を起動します。
    1. Studio で、[実行] > [コンフィギュレーションの編集]を選択します。Studio で[デバッグ実行のコンフィギュレーション]ダイアログボックスが開きます。
    2. 左側のペインの[サーバー]をクリックします。
    3. [VM Options]フィールドの末尾に以下を追加します。-Dgw.cc.env=ci-test
    4. [OK]をクリックします。
  2. [実行] > [実行]を選択し、さらに[サーバー]を選択することで、Studio から ClaimCenter を起動します。
  3. Postman で、[Launchpad]タブの右側の[+]をクリックして、新しい要求を開始します。
    1. [権限]タブで、ユーザー名 su とパスワード gw を使用して、[Basic Auth]を選択します。
  4. 次の呼び出しを入力しますが、[送信]はまだクリックしません。
    • POST http://localhost:8080/cc/rest/test-util/v1/policies
  5. 要求ペイロードを指定します。
    1. タブの先頭行([パラメータ]で始まる行)で、[本文]をクリックします。
    2. ラジオボタンの行で[raw]を選択します。
    3. ラジオボタンの行の末尾で、ドロップダウンリストの値を[テキスト]から[JSON]に変更します。
    4. サンプル保険契約ペイロードにあるテキストを、ラジオボタンの下のテキストフィールドに貼り付けます。
  6. [送信]をクリックします。

作業の確認

ClaimCenter では、クレームに関連付けられていない保険契約に関連するデータは表示しません。したがって、応答コードの取得を確認してから保険契約を使用してクレームを作成する以外に、このチュートリアルの作業を確認する独立した方法はありません。

関連オブジェクトのテストデータの作成

Test Util API を使用して、連絡先や専門家サービスなどの保険契約に関連したオブジェクトを作成することもできます。これは、開発中に機能のテストを実施したい場合や、必須のオブジェクトを手動で作成するには手がかかる場合に役に立ちます。