API プロダクトを作成する

API プロダクトは Apigee Edge 管理 UI(https://enterprise.apigee.com)または管理 API で作成できます。ここでは、管理 UI を使用する場合の手順を示します。API を使用する場合の手順は、Edge 管理 API での API の公開をご覧ください。

API プロダクトの概要については、API プロダクトとはをご覧ください。

API プロダクトの作成方法については、次の動画をご覧ください。

キーのコンセプトを理解する

API プロダクトを作成する前に、以下のキーのコンセプトを確認します。

API キー

デベロッパーのアプリを組織に登録する場合は、1 つ以上の API プロダクトにそのアプリを関連付ける必要があります。アプリを 1 つ以上の API プロダクトとペアにした結果として、Edge はアプリに一意のコンシューマ キーを割り当てます。アプリで API プロダクト内の API リソースにリクエストを行う場合、リクエストにはそのアプリの一意の API キーが含まれている必要があります。

API キーの適用は自動的には行われません。Verify API Key ポリシーなどのポリシーを使用して、API プロキシ内で API キー確認を実施する必要があります。なんらかのキー適用ポリシーがないと、誰でも API を呼び出せることになります。詳細については、Verify API Key ポリシーをご覧ください。

最終的には、Edge によって自動的にキーが生成されますが、API でキー確認を適用する必要があります。

自動承認と手動承認

デフォルトでは、アプリから API プロダクトへのキーリクエストはすべて自動的に承認されます。そうではなく手動でキーを承認することもできます。プロダクトの作成時に Edge 管理 UI でこのオプションを設定した場合は、API プロダクトを追加するすべてのアプリからのキーリクエストを承認する必要があります。詳細については、アプリを登録して API キーを管理するをご覧ください。

割り当て

割り当てにより、高トラフィックに備えてバックエンド サーバーが保護され、プロダクト ラインが区別化されます。たとえば、割り当て量の高いリソースをプレミアム プロダクトとしてバンドルし、割り当て量の低い同じバンドルを基本プロダクトとして使用できます。割り当ては、プロダクトが特に普及している場合に、サーバーが圧迫されないようにするために役立ちます。

割り当ての構成については、割り当てポリシーをご覧ください。割り当てポリシーでのプロダクト割り当て設定の使用については、https://community.apigee.com/questions/1488/how-do-the-quota-settings-on-an-api-product-intera.html をご覧ください。

スコープ

追加のセキュリティ レベルとして、OAuth スコープをカンマ区切りのリストで定義できます。これは、プロダクトを介して送信されるアクセス トークンに存在している必要があります。プロダクトを作成するときには、組織が使用するすべてのスコープを認識している必要があります。プロダクトに追加するスコープは、既存のスコープと一致している必要があります。そうでない場合、そのプロダクトは安全ではなくなります。

Edge OAuth ポリシーでスコープを使用する方法については、OAuth2 スコープの操作をご覧ください。

API プロダクトの作成

API プロダクトは Apigee Edge 管理 UI(https://enterprise.apigee.com)または管理 API で作成できます。ここでは、管理 UI を使用する場合の手順を示します。API を使用する場合の手順は、Edge 管理 API での API の公開をご覧ください。

API プロダクトを作成するには:

  1. Edge 管理 UI(https://enterprise.apigee.com)にログインします(無料のアカウントを https://login.apigee.com/sign_up で取得できます)。
  2. [Publish] タブ、[Products] の順にクリックします。
  3. [(+) Product] ボタンをクリックします。
  4. [Add Products] ページで名前を入力します。これがプロダクトの内部名になります。この名前は、いったんプロダクトが作成されると変更できません。名前に特殊文字を使用することはできません。
  5. 表示名を入力します。この表示名が UI に表示されます。[Display Name] 項目には [Name] 項目の内容を使用して自動的に値が入力されますが、この値は編集できます。表示名は、いつでもプロダクトを編集して変更できます。表示名では特殊文字を使用できます。
  6. 必要に応じて、API プロダクトの説明を入力します。
  7. 1 つ以上の API プロキシをプロダクトに追加します。[+API Proxy] をクリックします。
    これで、リストされている API プロキシへのアクセスが制限されます。リソースは、この手順の後半で構成します。
  8. Environment: プロダクトでアクセスを許可する環境を選択します。たとえば、内部に公開されているプロダクトの場合は [test] 環境を、公に公開されているプロダクトの場合は [prod] 環境を選択します。
  9. アクセスレベルを指定します。
    • Public - デベロッパーは、Developer Services ポータルでデベロッパー アプリを作成または変更するときに、一般公開プロダクトを参照して選択できます。
    • Internal only または Private - これら 2 つのオプションに機能的な違いはありません。API プロダクトが内部のみまたは限定公開になっている場合、このプロダクトは Developer Services ポータルに表示されません。デベロッパーがプロダクトを使用できるようにするには、管理 UI または管理 API でプロダクトをデベロッパー アプリに手動で追加する必要があります。これを行うと、デベロッパーは Developer Services ポータルで、自分のアプリに関連付けられているプロダクトを参照できるようになります。
  10. [Key Approval Type] として [Automatic] または [Manual] を選択します。
    自動キー承認を選択した場合、この API プロダクトを使用するすべてアプリからのすべてのキーリクエストが自動的に承認されます。手動キー承認を選択した場合は、この API プロダクトを使用するすべてのアプリからのキーリクエストをデベロッパーが承認する必要があります。手動でキーを承認するには、次の手順に従います。
    • UI: [Publish] > [Developer Apps] > developer_app > [Edit] をクリックしてアプリを編集 > [Approve]
    • API: Developer App Keys API を使用
  11. 割り当て制限を入力しても、プロダクトを介して実行可能な呼び出しの回数に対する制限は、自動的には適用されません。詳細については、上記の割り当てをご覧ください。

    割り当てポリシーから参照する割り当て制限を入力します。

  12. 必要に応じて、API プロダクトで OAuth を使用している場合は、プロダクトで許可する OAuth スコープ(「Read」や、アプリがその API 呼び出しで送信するその他のスコープなど)を入力します。複数のスコープをカンマ区切りリストで指定できます。

    スコープの詳細については、OAuth2 スコープの操作をご覧ください。
  13. [Resources] セクションで、API プロダクトに API プロキシリビジョンリソースパスを追加します。
    リソースパスを追加すると、プロダクトに含まれる API プロキシに関して、さらに API アクセスを制限できます。たとえば、/music というベースパスを使用して「music」API プロキシをプロダクトに追加するとします。これは、プロダクトによって /music への呼び出しが許可されることを意味します。

    ただし、プロダクトで venues リソースへのアクセスのみを許可するとします。このリソースの URI は /music/venues です。/venues リソースパスをプロダクトに追加すると、その URI への呼び出しのみがプロダクトによって許可されます。たとえば、/music/venues?name=paramount への呼び出しは通過しますが、/music/artists?name=Jack%Johnson への呼び出しは拒否されます。

    リソースパスを追加するには、既存の API プロキシリビジョンリソースパスからいずれかを選択するか(その後で [Import Resource] をクリックする)、[+Custom Resource] をクリックして自由形式でリソース パターンを追加します。
  14. (省略可)API プロダクトに最大 18 個のカスタム属性を追加することもできます。カスタム属性は、API プロキシの実行を制御するなど、さまざまな方法で使用できる Key-Value ペアです。たとえば、true または false の値を持つ deprecated というカスタム属性を作成できます。API プロキシフローで、(たとえば、カスタム属性の作成後に自動的に使用できるようになる verifyapikey.{policy_name}.apiproduct.deprecated 変数を使用して)API プロダクトの deprecated 属性の値を確認できます。その値が true(deprecated)の場合は、Raise Fault ポリシーでエラーをスローできます。
  15. (省略可)[Istio Services] 項目を使用して、プロダクトを 1 つ以上の Istio サービスにバインドします。Apigee Adapter for Istio を使用している場合を除き、この設定は無視できます。
  16. プロダクトを保存します。

API プロダクトの編集

API プロダクトを編集するには:

  1. Edge 管理 UI(https://enterprise.apigee.com)にログインします。
  2. [Publish] タブ、[Products] の順にクリックします。
  3. 編集する API プロダクトの名前をクリックします。
  4. API プロダクト ページで [Edit] をクリックします。
  5. 必要に応じて、項目を編集します。
  6. [Save] をクリックします。

Core Persistence Services の最小限のキャッシュ: Core Persistence Services(CPS)を有効にしている組織では、Edge により、以下のエンティティへのアクセス後最小 180 秒にわたり、キャッシュにこれらのエンティティが維持されます。

  • OAuth アクセス トークン。つまり、180 秒経過する前に OAuth v2 ポリシーの ExpiresIn 要素でアクセス トークンを期限切れにすることはできません。
  • Key Management Service(KMS)エンティティ(アプリ、デベロッパー、API プロダクト)。
  • OAuth トークンのカスタム属性と KMS エンティティ。

リソースパス「/」、「/*」、「/**」の動作を構成する

次の表は、さまざまなリソースパスに対する API プロダクトのデフォルトの動作を示しています。この例では、API プロキシのベースパスは /v1/weatherapikey です。API プロダクトのリソースパスは、ベースパスの後ろのパス接尾辞に適用されます。

リクエストパス / で許可される /* で許可される /** で許可される /*/2/** で許可される

/v1/weatherapikey

Y

N

N

N

/v1/weatherapikey/

Y

N

N

N

/v1/weatherapikey/1

Y

Y

Y

N

/v1/weatherapikey/1/

Y

Y

Y

N

/v1/weatherapikey/1/2

Y

N

Y

N

/v1/weatherapikey/1/2/

Y

N

Y

Y

/v1/weatherapikey/1/2/3/

Y

N

Y

Y

/v1/weatherapikey/1/a/2/3/

Y

N

Y

N

デフォルトでは、API プロダクトの「/」というリソースパスでは、ベースパスとすべてのサブ URI がサポートされます。たとえば、API プロキシのベースパス/v1/weatherapikey の場合、API プロダクトは /v1/weatherapikey と、/v1/weatherapikey/forecastrss/v1/weatherapikey/region/CA などのすべてのサブ URI をサポートします。

「/」のリソースパスが API プロキシのベースパスのみに対応するように、このデフォルトを変更できます。これは、「/」の後に何かが付く URI へのアクセスは、API プロダクトで許可されないことを意味します。この変更を行った場合、上記の表の「/ で許可される」の下の最初の 2 行にのみ「Y」が記載されることになります。

デフォルトを変更するには、システム管理者が組織の features.isSingleForwardSlashBlockingEnabled プロパティの値を true に設定する必要があります。Cloud のお客様は Apigee サポートに対してそのリクエストを行うことができます。

リソースの削除

API プロダクトに追加したリソースを削除できます。これは、リソースに不具合がある場合や、さらに開発が必要な場合に行うことができます。リソースを削除すると、そのリソースは API プロダクトの一部ではなくなります。その API プロダクトを使用するすべてのアプリで、削除されたリソースにアクセスできなくなります。削除したリソースはプロダクトから削除されますが、システムからは削除されないため、他のプロダクトでは引き続き使用できます。

リソースを削除するには

  • プロダクト詳細ウィンドウの [API Resource Paths for Product] セクションで無効にするリソースを見つけて、[Actions] 列の [Delete] をクリックします。