API プロダクトの管理

このページの内容は ApigeeApigee ハイブリッドに該当します。

Apigee Edge のドキュメントを表示する。

API プロダクトは API をバンドルしており、アプリ デベロッパーが利用できるようにしています。API プロダクトの概要については、API プロダクトとはをご覧ください。

[プロダクト] 概要ページについて

[プロダクト] 概要ページには、すべての API プロダクトと各プロダクトの詳細が表示されます。このページでは、新しい API プロダクトの作成、プロダクトの削除、表示や編集を行うプロダクトの選択を行うことができます。

[プロダクト] 概要にアクセスするには:

  • Cloud コンソールの Apigee UI を使用している場合: [配布] > [API プロダクト] を選択します。
  • 従来の Apigee UI を使用している場合: [公開] > [API プロダクト] を選択します。

[プロダクト] の UI を使用すると、次の一般的なタスクを実行できます。

以降のセクションでは、各タスクの詳細を説明します。

API プロダクトを作成する

このセクションでは、Apigee UI を使用して API プロダクトを作成する方法について説明します。

Apigee UI を使用して API プロダクトを作成するには:

  1. Cloud コンソールの Apigee UI を使用している場合: [配布] > [API プロダクト] を選択します。従来の Apigee UI を使用している場合: [配布] > [API プロダクト] を選択します。
  2. [プロダクト] 概要ページが表示されます。
  3. [+ 作成] をクリックします。プロダクトの構成ページが表示されます。
  4. API プロダクトを構成します。プロダクトの構成ページには、次の項目が含まれています。
    • プロダクトの詳細: 名前、アクセスレベル(限定公開、公開、組織内)、OAuth スコープなど、API プロダクトに関する基本情報。
    • オペレーション: API プロダクトがサポートする API プロキシ、リソースパス、HTTP メソッドのグループ。オペレーションごとに割り当て上限を定義することもできます。
    • GraphQL Operations: この API プロダクトでサポートされている API プロキシ、リソースパス、GraphQL オペレーション タイプのグループ。サポートされている GraphQL オペレーション タイプには、クエリとミューテーションが含まれています。どちらか一方を指定することも、両方を指定することも可能です。REST ベースの API プロキシと同様に、それぞれのオペレーションに割り当て上限を定義できます。
    • gRPC Operations: この API プロダクトがサポートする gRPC API プロキシと gRPC メソッドを指定します。REST ベースの API プロキシと同様に、オペレーションの割り当て上限を定義できます。
    • カスタム属性: API プロキシの実行制御を容易にする Key-Value ペア。

    これらの主な部分については、下の各セクションで説明します。

  5. 完了したら [保存] をクリックします。Apigee によって新しい API プロダクトが作成されます。これで、プロダクトをデベロッパー アプリに接続できます。アプリを登録して API へのアクセスを制御するをご覧ください。その他の例については、API キーをリクエストして API を保護するOAuth を使用して API を保護するをご覧ください。

プロダクトの詳細

[プロダクトの詳細] セクションには、新しい API プロダクトの基本情報を入力します。このセクションの各フィールドを、次の表に示します。

フィールド 必須かどうか 説明
Name 必須

API プロダクトの内部名を定義します。この値は、API プロダクトを参照する Apigee API の呼び出しで使用します。Name フィールドの値には、英数字、スペース、および「_ - . # $ %」を含めることができます。

例: 「My API Product」、「my-product

Display name 必須

API プロダクトの Apigee UI で使用される名前を定義します。API プロダクトの表示名はいつでも編集できます。

Display name には、特殊文字を使用できます。

例: <My> API Product!!!

Description 省略可

API プロダクトの目的や機能の理解に役立つ文字列。説明には、特殊文字を使用できます。

例: The one where I let dev apps read but not write to the "/accounts" endpoints.

Environment 省略可

API プロダクトがアクセスを許可する環境を指定します。環境が指定されていない場合、その API プロダクトではすべての環境が許可されます。

このフィールドで選択した環境は、API プロキシがデプロイされている場所に基づいて API プロキシへのアクセスを制限します。たとえば、API プロキシ A が test 環境と prod 環境の両方にデプロイされているが、API プロダクトでは test 環境のみが選択されている場合、対応するデベロッパー アプリの API 呼び出しでは、test 環境にデプロイされた API プロキシ A へのアクセスのみ許可されます。環境の詳細については、環境と環境グループについてをご覧ください。

Access 必須 この API プロダクトのユーザーに付与されるアクセスレベル。詳細については、アクセスレベルをご覧ください。
Automatically approve access requests 省略可(デフォルトは「選択」)

任意のアプリからこの API プロダクトに送信されるキーリクエストの自動承認を有効にします。手動によるキー承認が必要な場合は、このオプションを無効にします。

デフォルトでは選択されています。つまり、この API プロダクトはキーリクエストを自動的に承認します。

手動によるキー承認を選択した場合は、この API プロダクトを使用するアプリからのキーリクエストをすべて承認する必要があります。キーを手動で承認するには:

  • UI: [公開] > [アプリ] を選択し、アプリを選択して編集します。次に、[承認] をクリックします。
  • API: Developer app keys API を使用します。

詳細については、アプリの登録と API キーの管理をご覧ください。

Quota 省略可

この API プロダクトで許可されるリクエスト数の上限を定義します。この値は、この API プロダクトのオペレーションによるリクエストの総数に適用されます。

この値は、API プロダクトで定義するオペレーションに設定された、より具体的な割り当て上限に置き換えられます。

割り当て値を入力しても、API プロダクトで実行できる呼び出しの数が自動的に制限されるわけではありません。また、API プロダクトが参照する API プロキシに割り当てポリシーを追加する必要もあります。

詳細については、割り当てをご覧ください。

Allowed OAuth scope 省略可 API プロダクトで OAuth を使用している場合は、API プロダクトで許可する OAuth スコープ(アプリが API 呼び出しで送信する Read などのスコープ)をカンマ区切りのリスト形式で入力します。詳細については、OAuth スコープをご覧ください。

運用

HTTP ベースの API プロキシで許可されるオペレーション(リソースパス、HTTP メソッド、割り当てなど)を指定します。オペレーションを使用すると、API プロダクト内のどのリソースパスにどの REST メソッドがアクセスできるかということと、何件の呼び出しを行えるか(Quota で)を制御できます。

オペレーションの詳細を構成するには、[オペレーション] セクションの [+ ADD AN OPERATION] をクリックします。[オペレーション] ビューが表示されます。

フィールド 必須かどうか 説明
API proxy 必須

このオペレーションに関連付ける API プロキシを選択します。

Path 必須

オペレーションのリソースパスを入力します。

オペレーション パスを使用して、特定の URI へのリクエストを許可または禁止できます。たとえば、オペレーションのソースをベースパスが /musicmusic API プロキシに設定すると、その API プロダクトでは、/music の下にあるすべてのサブパスへの呼び出しが許可されます。ただし、API プロダクトで URI が /music/venuesvenues リソースパスのみへのアクセスを許可したい場合は、オペレーションのパスとして /venues を追加します。これは、すべてのオペレーションに対して行うことも、特定のオペレーションに対して行うこともできます。

この場合、/music/venues?name=paramount の呼び出しは許可されますが、/music/artists?name=Jack%Johnson の呼び出しはブロックされます。

なお、リソースパスのワイルドカードには、リソースパスの構成で説明する特別なルールがあります。

Methods 省略可

プルダウン リストから 1 つ以上の HTTP リクエスト メソッドを選択します(これらのメソッドは、HTTP 動詞と呼ばれることもあります)。Apigee では、選択したメソッドに一致する API プロキシへのリクエストのみ許可されます。

デフォルトでは何も選択されておらず、任意の HTTP メソッドによるリクエストが許可されます。

メソッドを 1 つも選択しなかった場合は、オペレーションを保存するときに、このフィールドの値として ALL が挿入されます。

HTTP リクエスト メソッドの機能については、HTTP リクエスト メソッドをご覧ください。

Quota 省略可 このオペレーションの割り当て上限を指定します。割り当てのカウント方法の詳細については、割り当てカウンタについてをご覧ください。
Custom attributes 省略可 カスタム属性をご覧ください。

GraphQL Operations

GraphQL オペレーションの詳細を構成するには、[Graphql Operations] セクションの [+ ADD AN OPERATION] をクリックします。[オペレーション] ビューが表示されます。GraphQL の使用もご覧ください。

フィールド 必須かどうか 説明
API proxy 必須

このオペレーションに関連付ける API プロキシを選択します。

Operation name 必須

オペレーションの名前を指定します。

Operation type 省略可

プルダウン リストで 1 つ以上の GraphQL オペレーション タイプを選択します。Apigee では、選択したオペレーション タイプに一致する API プロキシへのリクエストのみ許可されます。

デフォルトでは何も選択されておらず、どのオペレーション タイプのリクエストも許可されます。

タイプを 1 つも選択しなかった場合は、オペレーションを保存するときに、このフィールドの値として ALL が挿入されます。

GraphQL オペレーション タイプの機能については、クエリとミューテーションをご覧ください。

Quota 省略可 このオペレーションの割り当て上限を指定します。この割り当ては、API プロダクトで設定された割り当てよりも優先されます。割り当てをご覧ください。
Custom attributes 省略可 カスタム属性をご覧ください。

gRPC Operations

gRPC オペレーションの詳細を構成するには、[gRPC Operations] セクションで [+ ADD AN OPERATION] をクリックします。[オペレーション] ビューが表示されます。gRPC API プロキシの作成もご覧ください。

フィールド 必須かどうか 説明
API proxy 必須

このオペレーションに関連付ける API プロキシを選択します。

Service name 必須

オペレーションの名前を指定します。

現在のリリースでは、ターゲット サーバー名を指定するオプションはありません(サービス名とターゲット サーバーは同じです)。

gRPC methods in service 省略可

利用可能な gRPC メソッドを入力します。複数のメソッドには、カンマ区切りのリストを使用します。

Quota 省略可 これらのオペレーションの割り当て上限を指定します。この割り当ては、API プロダクトで設定された割り当てよりも優先されます。割り当てをご覧ください。
Custom attributes 省略可 カスタム属性をご覧ください。

カスタム属性

カスタム属性は、API プロキシの実行を制御することなど、さまざまな用途に使用できる Key-Value ペアです。

1 つの API プロダクトでは、オペレーション時に設定される属性を含め、最大 18 個のカスタム属性を持つことができます。

たとえば、値に truefalse を持つ deprecated というカスタム属性を作成できます。API プロキシのフローでは、API プロダクトの deprecated 属性の値を確認できます。その値が true の場合は、RaiseFault ポリシーでエラーをスローできます。これは、オペレーションが非推奨となり、サポートされなくなったことを想定した動作になります。

割り当て

API プロキシまたはオペレーション スコープで割り当て設定を定義します。割り当てを定義する場合は、Quota の下に次の 3 つのフィールドを指定する必要があります。

  1. 最初のフィールドには、指定した期間にデベロッパー アプリから API プロキシに送信できるリクエストの最大数を指定します。

    このフィールドは、Quota ポリシーの <Allow> 要素に対応します。

  2. 2 つ目のフィールドには、割り当てのリセットの頻度(間隔)を指定します。

    このフィールドは、Quota ポリシーの <Interval> 要素に対応します。

  3. 3 つ目のフィールドには、日、週、月など、リセット期間のタイプ(または時間単位)を指定します。

    このフィールドは、Quota ポリシーの <TimeUnit> 要素に対応します。

次の例では、API プロキシへの GETHEADTRACE リクエストの上限を、1 日あたり 1,000 件に設定します(他のすべての HTTP リクエストは無視されます)。

オペレーションに新しい割り当てを追加する

次の例では、HTTP メソッドに関係なく、/mypath リソースに対するリクエストの上限を 3 分ごとに 42 回に設定します。

オペレーションに新しい割り当てを追加する

オペレーションの割り当てを定義する場合は、[割り当て] セクションの 3 つのフィールドすべてに値を入力する必要があります。

同じオペレーションで複数の HTTP メソッドに対して、異なる割り当てを定義することはできません。これを行うには、複数の API プロダクトを作成し、それぞれにメソッド固有の割り当てを定義する必要があります。

これらの値を Quota ポリシーと API プロダクト(ここで示した UI または API プロダクト API で)の両方で設定した場合は、API プロダクトの UI / API 設定が優先されます。

リソースパスを構成する

リソースパスには、次のルールがあります。

  • /: ベースパスとそのすべてのサブパスに対応することを示します。
  • /**: ベースパスのすべてのサブパスに対応することを示します(ベースパスには対応しません)。
  • /*: ベースパスから 1 レベル下の URI だけに対応することを示します。
  • API プロダクトまたはそのオペレーションで指定されたリソースパスは、API プロダクトに追加されたすべての API プロキシに適用されます。
  • より包括的で具体性が低いリソースパスが、より具体的なリソースパスよりも優先されます。たとえば、//** を追加すると、/ リソースパスが優先され、/** リソースパスは無視されます。

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

リクエスト URI / で可能 /* で可能 /** で可能 /*/2/** で可能 /*/2/* で可能
/v1/weatherapikey
/v1/weatherapikey/
/v1/weatherapikey/1
/v1/weatherapikey/1/
/v1/weatherapikey/1/2
/v1/weatherapikey/1/2/
/v1/weatherapikey/1/2/3/
/v1/weatherapikey/1/a/2/3/

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

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

詳細については、API プロダクト構成の理解をご覧ください。

API プロダクトを編集する

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

  1. Cloud コンソールの Apigee UI を使用している場合: [配布] > [API プロダクト] を選択します。従来の Apigee UI を使用している場合: [公開] > [API プロダクト] を選択します。
  2. [公開] > [API プロダクト] を選択します。
  3. 編集する API プロダクトの行をクリックします。Apigee により API プロダクトの詳細が表示されます。
  4. [編集] をクリックします。
  5. 必要に応じて、API プロダクトの設定を編集します。

    既存の API リソースは、編集できません。変更する場合は、API リソースを削除して、値を修正した新しいバージョンを追加する必要があります。

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

  6. (省略可)Apigee Monetization が有効になっている場合は、[料金プランを追加する] または 追加(従来の UI)をクリックして、API プロダクトの料金プランを作成します。
  7. [保存] をクリックします。

変更は短時間(約 5 分)で反映されます。

API プロダクトを削除する

API プロダクトを削除する前に、そのプロダクトに関連付けられているすべてのデベロッパー アプリの登録 / 関連付けを解除する必要があります。解除する場合は、アプリを削除するか、アプリの API キーを取り消します。

API プロダクトを削除するには:

  1. Cloud コンソールの Apigee UI を使用している場合: [配布] > [API プロダクト] を選択します。従来の Apigee UI を使用している場合: [公開] > [API プロダクト] を選択します。
  2. [公開] > [API プロダクト] を選択します。
  3. 削除するプロダクトの行にある [アクション] メニューを開き、[削除] を選択します。
  4. 削除オペレーションを確定すると、短時間(約 5 分)で削除が反映されます。