Skip to main content

テナントサービスのREST API呼び出し

Incentivesテナントサービスをインストールした後、Postmanなどのアプリケーションを使用してREST API呼び出しを行い、データベースを初期化し、モデルを作成し、ユーザーを作成します。

エンドポイントを呼び出すには、JSON Web Token(JWT)を使用してヘッダーを設定する必要があります。payload値とsecret値を入力する場合は、オンラインツールを使用してトークンを生成できます。

ヘッダー

{
  "alg": "HS256",
  "typ": "JWT",
  "kid": "MANAGEMENT"
}

ペイロード

{
  "admin_user": {},
  "iat": 0,
  "exp": 0
}

iatおよびexpフィールドはオプションです。

expフィールドは、将来の日付で設定される有効期限日です。ペイロードiatexpは、1970年1月1日木曜日の協定世界時 (UTC)00:00:00から経過した秒数のUnix時間の日付です。

署名検証

入力する値は、restAPI.appsettings.configファイルのMANAGEMENT_KEYの値と一致する必要があります。デフォルト値はmanagement-portalです。

ペイロードとシークレットを編集した後、PostmanでREST API呼び出しを行うときに、エンコードされたトークンをコピーしてHeaderセクションに貼り付けます。

編集後、JWTは次のようになります。

jwt_example.png

データベースの初期化

テナントサービスのインストールに成功したら、PostgreSQLで作成したデータベースを初期化する必要があります。

postgresにtenantsデータベースをまだ追加していない場合は、データベースを初期化する前に追加する必要があります。以下に、その手順を示します。

PoostgreSQLにtenantsデータベースを追加する

  1. PG admin IIIを開き、[データベース]を右クリックして新しいデータベースを作成します。

  2. このデータベースにtenantsと名前を付けます。

    警告

    データベースの名前は、大文字と小文字が区別されます。

  3. 新しいデータベースの[スキーマ]セクションで、publicスキーマを削除します。

    インストールプロセスの後半で、このpublicスキーマを置き換える新しいSPMスキーマを作成します。

  1. Rest APIとテナントサービスを起動します。

  2. Postmanで、リクエストを作成します

    ヒント

    リクエストをコレクションに追加して、今後すぐに見つけて呼び出しできるようにします。

  3. [リクエスト]タブの[ヘッダー]セクションで、生成したJWT<JWT>と置き換えて、次のキーを追加します。

    キー

    Authorization

    Bearer <JWT>

    Content-Type

    application/json

    このセクションのすべての呼び出しに同じヘッダーを使用しますが、これらのキーをすべての新規呼び出しに追加する必要があります。

  4. 次のサンプル呼び出しを使用して、データベースを初期化します。

    Path: http://localhost:9100/services/createDB
    Method: POST
    Body: “NULL"

    Postmanでは、呼び出しは次のようになります。

    postman_create_db_example.png
  5. [送信]をクリックします。

  6. 「200 OK」のステータスと「成功」のメッセージが表示されます。これは、データベースが初期化されたことを示します。PG admin IIIを開いて確認します。すべてのICMシステムテーブルで新しいパブリックスキーマが作成されていることに注意してください。

結果

成功すると、ステータスは200 OKと表示されます。

これはを確認するには、pgAdmin IIIを開き、すべてのIncentivesシステムテーブルで新しいパブリックスキーマが作成されたことを確認します。サイドバーは、次のように表示されます。

pgadmin_with_sys_tables.png

モデル作成

Incentivesモデルを作成するには、テナントサービスのモデル作成エンドポイントを呼び出す必要があります。

重要

モデルの作成時にSQL Serverが実行されていることを確認します。

  1. Postmanで、リクエストを作成します

    ヒント

    データベースの初期化時に追加したヘッダーをコピーできます。

  2. このサンプル呼び出しを使用して、必要に応じてパラメーターを変更しモデルを作成します。

    Path: http://localhost:9100/services/admin/tenants/1/models
    Method: POST
    Body: 
    {
        "Name":"string",
        "FiscalYearStart":"2020-01-01T00:00:00.000Z",
        "NbPayPeriods":12,
        "Currencies":[
            {
            "m_shortName":"USD",
            "m_longName":"US Dollars"
            }
        ]
    }

    重要

    モデル名は文字で始まる必要があり、アンダースコアを含めることはできません。

結果

次のようなレスポンスが表示されます。

{
    "model_id":0,
    "model_name":"string",
    "tenant_id":0,
    "server":"1",
    "database_name":"string",
    "created_at":"2016-03-01T23:59:29.305Z"
}

成功すると、ステータスは200 OKと表示されます。

これを確認するには、pgAdmin IIIを開き、パブリックスキーマテーブルに移動し、モデルテーブルを右クリックして、上位100行を表示します。作成したモデルがこのリストに表示されます。

モデルの削除

Incentivesモデルを削除するには、テナントサービスのモデルエンドポイントを呼び出す必要があります。

重要

この呼び出しでは、SQLサーバーからモデルは削除されません。

  1. Postmanで、リクエストを作成します

    ヒント

    データベースの初期化時に追加したヘッダーをコピーできます。

  2. このサンプル呼び出し使用してモデルを削除します。

    Path: http://localhost:9100/services/tenants/1/models
    Method: Delete
    Body: 
        {
            "model_name":"string"
        }

結果

成功すると、ステータスは200 OKと表示されます。

モデルを削除すると、ユーザーはIncentives管理者クライアントを介してモデルにアクセスできなくなります。

管理者ユーザーの作成

Incentivesモデルを作成したら、テナントサービスエンドポイントを呼び出して新しいモデルの管理者ユーザーを作成する必要があります。

  1. Postmanで、リクエストを作成します

  2. このサンプル呼び出しを使用して、必要に応じてパラメーターを変更しモデルを作成します。

    Path: http://localhost:9100/services/admin/tenants/1/users
    Method: POST
    Body: 
    {
        "tenant_id": "1",
        "email": "string",
        "password": "string",
        "first_name": "string",
        "last_name": "string"
    }

結果

成功すると、ステータスは200 OKと表示されます。

これを確認するには、pgAdmin IIIを開き、パブリックスキーマテーブルに移動し、ユーザーテーブルを右クリックして上位100行を表示します。作成したユーザーがこのリストに表示されます。

管理者ユーザーをモデルに関連付ける

管理者ユーザーを作成したら、その管理者をモデルに関連付ける必要があります。

  1. Postmanで、新規リクエストを追加し、データベースの初期化時に使用したものと同じヘッダーを使用します。

  2. このサンプル呼び出しを使用して、管理者ユーザーをモデルに関連付けます。

    Path: http://localhost:9100/services/admin/tenants/1/users/<admin email address>
    Method: PATCH
    Body: 
        {
        "tenant_id": "1",
        "email": "string",
        "model": "string"
        }

    Emailは、作成した管理者ユーザーの電子メールであり、modelは作成したモデルの名前です。

    注意

    管理者の電子メールアドレスを追加する場合は、< brackets >を忘れずに削除してください。

成功すると、ステータスコード200 OKが表示されます。

これを確認するには、pgAdmin IIIを開き、パブリックスキーマテーブルに移動し、ユーザーテーブルを右クリックして上位100行を表示します。いずれかのユーザーの下にモデルが表示されます。