API へのアクセスと認証

Sterling Intelligent Promising は、 OAuth2 認証方式をサポートします。 API にアクセスするには、API の呼び出しに使用されるアクセス・トークンを生成する必要があります。

このタスクについて

Sterling Intelligent Promisingで提供される API にアクセスするには、ユーザーはアクセス・トークンを取得し、それを使用して API 要求を行う必要があります。 各テナントは、そのデベロッパーズ・ツールキット、実稼働前、または非実稼働に独自のアクセス・トークンが必要であるかどうかにかかわらず、環境に関連付けられます。 API トークンの生成について詳しくは、 API の概要を参照してください。

指定された各アクセス・トークンは、今後 12 時間有効です。 この時間を過ぎると、新しいアクセス・トークンを生成する必要があります。 アクセス・トークンの効率的な使用を促進するために、システムでは 1 時間に最大 1000 個のアクセス・トークンを生成できます。 この制限を超えると、ユーザーはレート制限に達したというエラーを受け取ることになります。

ベスト・プラクティスとして、接続アプリケーションでは、アクセス・トークンを有効期限まで再利用できるように、アクセス・トークンをローカル・キャッシュに保管することをお勧めします。 トークンの有効期限が切れると、アプリケーション・クライアントは新しいトークンを要求し、同じキャッシング手順に従うことができます。

適切に管理されたトークン・システムは、サービスの中断をゼロにするために重要です。 コンシューマー・アプリケーションが API にアクセスするためのトークン情報を共有できるように、ルーチン・トークンの更新を実行する集中トークン管理サービスを使用することをお勧めします。 トークンの有効期限が切れる前に、システムは、有効期限から 30 分以内にトークン要求を先行させて、ダウンストリーム・クライアントが新規トークンに切り替えるための十分な時間を確保する必要があります。

ベスト・プラクティスについて詳しくは、 API のベスト・プラクティスを参照してください。

手順

以下の手順では、API クライアントを使用して認証トークンを取得する方法の例を示します。

  1. OAuth HTTP リクエストを行い、アクセス・トークンを取得します。
    1. POSTMAN などの API クライアントを開きます。
    2. 要求タイプを POSTに設定します。
    3. URLを https://api.watsoncommerce.ibm.com/inventory/{tenantid}/v1/oauth2/token に設定し、 tenantid をテナントIDに置き換えてください。
    4. 以下のパラメーターを追加します。
      • HTTP
        "Content-Type" : "application/x-www-form-urlencoded"
        "Authorization" : "Basic <base64_encoded_clientID:clientSecret>"
        注: HTTP データを転送する標準的な方法は base64です。 base64 エンコードされた値を取得するには、以下の手順に従ってください
        1. clientId(例えば、ABC と clientSecret) を連結します。例えば、123 をコロン (:) で連結します。
          ABC:123
        2. 任意の base64 エンコード・ユーティリティーを使用して、ストリング ABC:123をエンコードします。
      • 本文:
        grant_type=client_credentials
      POST 応答は、以下の例に示すようにアクセス・トークンを生成します。
      {
      "token_type": "bearer",
      "access_token": "trYl8rEz0A11E32kVdWemRD9ilYQbOLP",
      "expires_in": 43200
      }

      API 要求時に access_token 属性の値を使用します。 expires_in 属性は、トークンが有効である有効期限を秒単位で定義します。

      注: IBM® Sterling Intelligent Promising によって提供されるトークンはすべて 12 時間有効です。
  2. アクセス・トークンを使用して、ヘッダーおよび入力本体とともに API 呼び出しを行うことができます。
    例えば、 Inventory Visibility Availability API の場合は次のようになります。
    https://api.watsoncommerce.ibm.com/inventory/<tenantid>/v1/availability/node
    ヘッダー:
    "Content-Type" : "application/json"
    "Authorization" : "Bearer [access_token]"
    本文:
    {
      "demandType": "OPEN_ORDER",
      "lines": [
        {
          "deliveryMethod": "SHP",
          "itemId": "sample0123",
          "lineId": "line_sample01234",
          "productClass": "NEW",
          "shipNodes": "["eastnode01"]",
          "unitOfMeasure": "EACH"
        }
      ],
      "segment": "ONLINE",
      "segmentType": "Channel"
    }

次のタスク

API の認証について詳しくは、 OAuth 認証 の資料を参照してください。