Send Docs Feedback

Note: Most user interface tasks can be performed in Edge Classic or the New Edge experience. For an overview, getting started topics, and release notes specific to the New Edge experience, see the docs.

シンプルな API プロキシの構築

Apigee Edge を使用すると、バックエンドサービスを迅速に API として公開できます。 そのためには、公開したいバックエンドサービスのファサードを提供する API プロキシを作成します。提供する必要があるのは、バックエンドサービスのネットワークアドレスと、 デベロッパに公開される API プロキシの作成で Edge が使用する情報だけです。 

API プロキシは、バックエンドサービス情報とデベロッパが使用する API とを分離します。これにより、バックエンドサービスに対する今後の変更がデベロッパから隠されます。バックエンドサービスを更新しても、そうした変更を隠されているデベロッパは、中断なく引き続き API を呼び出せます。

API プロキシの作成過程の概要を説明するビデオをご覧ください。

Edge 管理 UI での API プロキシの作成

API プロキシを作成する最も簡単な方法は、Edge 管理 UI を使用することです。

  1. Edge 管理 UI にログインします。
  2. メインメニューから「APIs」 > 「API Proxies」を選択します。



    組織内の API プロキシのリストが表示されます。
  3. 新しい API プロキシを作成するには、「add (+) API Proxy」 ボタンを選択します。

    「Build a Proxy」ウィザードが表示されます。

このウィザードは、API プロキシを生成し、その API プロキシに最低限の機能を追加するのに必要な手順を案内します。

ウィザードの最初のページでは、以下のソースから API プロキシを作成できます。

説明
Reverse proxy (most common)

受信リクエストを既存の HTTP バックエンドサービスにルーティングする API プロキシ。JSON または XML API になることがあります。

Click UseOpenAPI to generate the proxy from a valid OpenAPI specification. For more informations on this option, see Using OpenAPI to generate proxies.

Node.js App

Edge 上で実行中の Node.jsバックエンドターゲットへのルーティングを行う API プロキシ。

Click UseOpenAPI to generate the proxy from a valid OpenAPI specification. For more informations on this option, see Using OpenAPI to generate proxies.

SOAP service WSDL ファイルから生成された API プロキシ。
No Target

API バックエンドなし ("No target") の API プロキシ。

Click UseOpenAPI to generate the proxy from a valid OpenAPI specification. For more informations on this option, see Using OpenAPI to generate proxies.

Proxy bundle 既存の API プロキシバンドル (例えば GitHub に用意されているサンプル API プロキシのどれか)

以降のセクションでは、各リソースを使用して API プロキシを作成する方法を説明します。

参考資料 :

HTTP サービス用のリバースプロキシの作成

Edge は、2 つの情報に基づいてリバースプロキシを生成します。

  • バックエンドサービスの URL
  • API プロキシによってコンシューマアプリに公開されることになる API を一意に指定する URI パス

バックエンドサービス URL は、通常、組織が所有するサービス対応アプリケーションを表します。また、公に利用できる API を参照することもあります。 API またはサービスは管理下に置くことができます (内部 HR アプリケーション、クラウドにある Rails アプリケーションなど)。サードパーティーの API またはサービスでも構いません (Twitter や Instagram など)。 

  1. https://enterprise.apigee.com にログインします 
  2. API プラットフォームの UI で、「APIs」タブを選択します。
  3. 「+API Proxy」をクリックします。
  4. In the Build a Proxy wizard, select Reverse proxy (most common). To generate the proxy from an existing, valid OpenAPI spec, click Use OpenAPI. For details on this option, see Using OpenAPI to generate proxies.
  5. 「Next」をクリックします。
  6. 「Build a Proxy」ウィザードの手順に従い、以下の選択を行います。
    フィールド 説明
    詳細
    Proxy Name API に表示される名前。
    Proxy Base Path

    The Proxy Base Path is a URI fragment after the http(s)://[host] address of your API proxy. Edge uses the Base Path URI to match and route incoming request messages to the proper API proxy.

    Note: For Apigee's recommendations on API versioning, see Versioning in the Web API Design: The Missing Link e-book.

    After the base path are any additional resource URLs. Here's the full URL structure that clients will use to call your API proxy:

    https://[host]/base_path/conditional_flow_path

    Note: The base path must be unique. If you later edit this proxy and set its base path to be the same as another API proxy, this API proxy is automatically undeployed when you save it. You must edit the base path before you can redeploy it. 

    ベースパスでのワイルドカードの使用

    API プロキシのベースパスで 1 つ以上の /*/ ワイルドカードを使用して、プロキシを将来でも使用できるようにすることができます。例えば、ベースパス /team/*/members を使用すると、クライアントは、新しいチームをサポートするための新しい API プロキシを作成することなく、 https://[host]/team/blue/membershttps://[host]/team/green/members を呼び出すことができます。/**/ はサポートされていないことに注意してください。

    Note: The Proxy Base Path defaults to the value specified for Proxy Name converted to all lower case unless you explicitly edit the content in the Proxy Base Path field.

    Existing API API プロキシ URL を介して API を呼び出すアプリに代わって API プラットフォームが呼び出す URL。これは、Yahoo Weather API の URL です。
    説明 API の説明。
    セキュリティ
    API Key API プロキシに API キーベースの認証を追加します。 このオプションを選択すると、「Impose Quota per Developer」オプションが選択可能になります。
    OAuth 2.0 API プロキシに OAuth 2.0 ベースの認証を追加します。 このオプションが選択されると、「Impose Quota per Developer」オプションが選択可能になります。
    Impose Quota per Developer 特定の期間に個別のアプリが API プロキシに送信できるリクエストメッセージの数を制限するポリシーを追加します。
    Publish API Product 「Secure with API Keys」オプションを選択すると、「Publish API Product」オプションが自動的に選択されます。 このチュートリアルの目的上、このオプションは必ず選択を解除してください。
    Add CORS headers CORS (クロスオリジンリソース共有) を有効にし、ブラウザが別のドメインに直接リクエストを行うことができようにします。
    Virtual Hosts
    default 仮想ホストについては、「仮想ホスト」を参照してください。
    secure  
    Build
    Deploy Environments 仮想ホストについては、「仮想ホスト」を参照してください。
  7. 「Build and Deploy」をクリックします。
    レスポンスで、新しい API プロキシが正常に作成され、「test」環境に展開されたという確認応答が表示されます。
  8. 「View <proxy name> proxy in the editor」をクリックして、API プロキシの詳細ページを表示します。

参考資料 :

API バンドルからの API プロキシの読み込み

API プロキシを他のサポートファイルと合わせて XML ファイルの集合として定義することがよくあります。API プロキシを Edge 外のファイルセットとして定義することで、それらをソース管理システムで保守し、テストや展開を目的として Edge に読み込めるようになります。

Apigee では、API プロキシサンプル一式をバンドルとして GitHub に用意しており、それをダウンロードして検証ないし変更して Edge にアップロードできます。詳細については、「Using the sample API proxies」を参照してください。  

Watch this video to learn how to create and import an API proxy from an API proxy bundle.

API プロキシをファイルセットから読み込むには、次の手順に従います。 

  1. https://enterprise.apigee.com にログインします 
  2. API プラットフォームの UI で、「APIs」タブを選択します。
  3. 「+API Proxy」をクリックします。
  4. 「Build a Proxy」ウィザードで、「Proxy bundle」を選択します。
  5. 「Next」をクリックします。
  6. 「Build a Proxy」ウィザードの手順に従い、以下の選択を行います。

    フィールド 説明
    詳細
    ZIP Bundle 「Choose File」をクリックし、API プロキシ構成を含んでいる ZIP ファイルに移動します。
    Proxy Name API に表示される名前。
    Build
    Proxy details. プロキシ設定を確認します。
  7. 「Build」をクリックします。
  8. レスポンスで、新しい API プロキシが正常にインポートされたという確認応答が表示されます。API サービスは、インポートされた API プロキシを組織内の「test」環境に自動的に展開します。API プロキシによってエクスポーズされた API は、呼び出しに利用できます。
  9. 「View <proxy name> proxy in the editor」をクリックして、API プロキシの詳細ページを表示します。
  10. To deploy the proxy, click the Deployment drop-down, select the environment you want to deploy to, and respond to the prompt.

API プロキシのコピーとバックアップ

既存の API プロキシを新しい API プロキシにコピーしたり、既存の API プロキシを API プロキシバンドルとして XML ファイルセットにバックアップしたりできます。バンドルに書き出すと、前述の手順で API プロキシを新しいプロキシに読み込めます。 

既存の API プロキシを新しい API プロキシにコピーするには、次の手順に従います。

  1. 管理 UI のメインメニューで「APIs」をクリックして、「API Proxies」ページを表示します。 
  2. 「API Proxies」テーブルで、プロキシの名前をクリックします。 
  3. API プロキシ詳細ページの左上で「Project」 > 「Save as New API proxy」をクリックします。
  4. 新しい API プロキシの名前を指定します。
  5. 「Add」を選択します。

既存の API プロキシを API プロキシバンドルにバックアップするには、次の手順に従います。

  1. 管理 UI のメインメニューで「APIs」をクリックして、「API Proxies」を表示します。 
  2. 「API Proxies」テーブルで、プロキシの名前をクリックします。 
  3. API プロキシ詳細ページの左上で「Project」 > 「Download Current Revision」をクリックして、バンドルの ZIP ファイルをダウンロードします

SOAP ベースの Web サービスを API プロキシとして公開する

「Build a Proxy」ウィザードで、「Soap Service」を選択し、ウィザードの手順に従って、SOAP サービス用のパススループロキシまたは REST ベースプロキシを作成します。

詳細については、「API プロキシとしての SOAP サービスの公開」を参照してください。

API へのセキュリティ保護および CORS サポートの追加

既存のバックエンドサービス用の API プロキシを追加する場合、「Build a Proxy」ウィザードの「Security」ページを使用すると、セキュリティや CORS のサポートなどの機能を API に追加できます。

API バンドルを読み込んだら、バンドルでセキュリティ保護を構成する必要があります。UI からは、バンドルの読み込み時にセキュリティ保護の追加は促されません。

セキュリティ保護の追加

「Build a Proxy」ウィザードの「Security」ページで、追加するセキュリティのタイプを選択します。以下の選択肢があります。

  • Pass through - セキュリティを使用しません。リクエストは、Apigee Edge によるセキュリティチェックが一切行われずにバックエンドに渡されます。
  • API Key - 定義中の API プロキシにシンプルな API キー検証を追加します。 レスポンスで、API Platform は API プロキシに VerifyAPIKey ポリシーと AssignMessage ポリシーを追加します。VerifyAPIKey ポリシーは、要求側のアプリによって提示される API キーを検証します。AssignMessage ポリシーは、バックエンドサーバーに転送されたリクエストから API キー (API 呼び出しでクエリーパラメータとして指定されます) を取り去ります。
  • OAuth 2.0 - Edge は、API プロキシに 2 つのポリシーを自動的に追加します。1 つ目のポリシーは、アクセストークンを検証するもので、もう 1 つのポリシーは、バックエンドサービスに転送する前にメッセージからアクセストークンを取り去るものです。アクセストークンの取得方法を確認するには、「OAuth」を参照してください。

「Secure with API Keys」チェックボックスをオンにすると、以下の追加選択肢が利用可能になります。

  • 「Impose Quota per Developer」チェックボックスが選択可能になります。このチェックボックスをオンにすると、Quota ポリシーが API プロキシに追加され、個々のアプリからの API へのトラフィックに制限がかかります。
  • 「Publish API Product」チェックボックスが選択可能になり、自動的に選択されます。新しい API プロキシを構築するときに製品 (product) を自動的に生成する場合は、このチェックボックスをオンにします。自動生成される製品は、新しい API プロキシへの関連付けとともに作成されます。この新しい API に関連付ける既存の製品がある場合は、不要な製品を作成しないようにこのチェックボックスをオフにしてください。製品については、「API 製品 (product) とは?」を参照してください。

CORS サポートの追加

CORS (クロスオリジンリソース共有) は、Web ブラウザが別のドメインにリクエストを直接実行できるようにする標準メカニズムです。CORS 標準では、Web ブラウザおよびサーバーがクロスドメイン通信を実装するのに使用する HTTP ヘッダーが詳しく定義されています。

API に CORS のサポートを追加するには、「Add a Proxy」ウィザードの「Security」ページで「Add CORS headers」を選択します。

参考資料 :

Using OpenAPI Specifications to generate proxies

This section discusses the Use OpenAPI option that is available for generating from an OpenAPI Specification the following types of API proxies: reverse, Node.js, or no target.

What is an OpenAPI Specification?

Open API Initiative"The Open API Initiative (OAI) is focused on creating, evolving and promoting a vendor neutral API Description Format based on the Swagger Specification." For more information about the Open API Initiative, see https://openapis.org

An OpenAPI Specification uses a standard format to describe a RESTful API. Written in either JSON or YAML format, an OpenAPI Specification is machine readable, but is also easy for humans to read and understand. The specification describes such elements of an API as its base path, paths and verbs, headers, query parameters, operations, content types, response descriptions, and more. In addition, an OpenAPI Specification is commonly used to generate API documentation.

The Apigee API Studio is an open source tool for developing, testing, and documenting OpenAPI Specifications. 

Here's a fragment from an OpenAPI Specification that describes Apigee's mock target service, http://mocktarget.apigee.net. For more information, see https://github.com/apigee/api-platform-samples/tree/master/default-proxies/helloworld/openapi.

swagger: '2.0'
info:
  description: 'OpenAPI Specification for the Apigee mock target service endpoint.'
  version: 1.0.0
  title: Mock Target API
host: mocktarget.apigee.net
schemes:
  - http
  - https
paths:
  /:
    get:
      summary: View personalized greeting
      operationId: View a personalized greeting
      description: View a personalized greeting for the specified or guest user.
      produces:
        - text/plain
      parameters:
        - name: user
          in: query
          description: Your user name.
          required: false
          type: string
      responses:
        '200':
          description: Success
  /help:
    get:
      summary: Get help
      operationId: Get help
      description: View help information about available resources in HTML format.
      produces:
        - text/html
      responses:
        '200':
          description: Success
...

Through the Build a Proxy wizard, you can import an OpenAPI Specification and use it to generate an API proxy. Once the proxy is generated, you can use the Edge UI to further develop it by adding policies, implementing custom code, and so on -- just like any Edge proxy.

Creating an API proxy from an OpenAPI Specification

For a step-by-step hands-on experience, step through the tutorial Create an API proxy from an OpenAPI Specification.

Watch this video to learn how to create an API proxy from an OpenAPI Specification.

To create an API proxy from an OpenAPI Specification:

  1. In the Edge UI, select APIs > API Proxies in the top menu.
    APIs menu
  2. 「API Proxies」ページで、「+ API Proxy」をクリックします。
  3. In the Build a Proxy wizard, select the type of proxy you wish to create. OpenAPI is supported for reverse, Node.js, and no target proxies.
  4. 「Use OpenAPI」をクリックします。
  5. In the dialog, enter a URL pointing to an existing, valid OpenAPI Specification. For example, you can try this URL to test it out: 

    https://raw.githubusercontent.com/apigee/api-platform-samples/master/default-proxies/helloworld/openapi/mocktarget.yaml
     
  6. Click Apply.
    Edge reads the spec, and uses it to generate the proxy. 
  7. 「Next」をクリックします。

  8. The Details page in the Build a Proxy wizard displays. The fields are pre-populated using values defined in the OpenAPI Specification. For example, if you selected reverse proxy:
    Build a Proxy Details
    The following table describes the default field values that are pre-populated using properties in the OpenAPI Specification. An excerpt of the OpenAPI Specification illustrating the properties used is shown following the table.
    フィールド 説明 デフォルト
    Proxy Name Name of the API proxy. For example: Mock-Target-API. title property from the OpenAPI Specification with spaces replaced by dashes
    Proxy Base Path

    Path component that uniquely identifies this API proxy within the organization. The public-facing URL of this API proxy is comprised of your organization name, an environment where this API proxy is deployed, and this Proxy Base Path. For example: http://myorg-test.apigee.net/mock-target-api

    Note: The Proxy Base Path defaults to the value specified for Proxy Name converted to all lower case unless you explicitly edit the content in the Proxy Base Path field.

    Proxy Name field content converted to all lower case
    Existing API

    Note: Field is valid for reverse proxies only.

    Target URL invoked on behalf of this API proxy. Any URL that is accessible over the open Internet can be used. For example: http://mocktarget.apigee.net

    Properties in OpenAPI Specification are combined to create target URL:
    • http:// or https:// (depending on the schemes property)
    • host property
    • basePath property (if specified)
    説明 Description of the API proxy. description property

    The following provides an excerpt from the OpenAPI Specification highlighting the properties that are used to pre-populate the fields.

    swagger: '2.0'
    info:
      description: 'OpenAPI Specification for the Apigee mock target service endpoint.'
      version: 1.0.0
      title: Mock Target API
    host: mocktarget.apigee.net
    schemes:
      - http
      - https
    ...
      
  9. 「Next」をクリックします。
  10. On the Flows page, select the operations for which you want to generate conditional flows. Conditional flows are generated automatically from the operations that are defined within the paths object in the OpenAPI Specification. Conditional flows tell Edge, "When you see this, perform this logic." For more information, see Understanding flows. For example:
    Build a Proxy Flows

    Note that the /help operation has been deselected on the Flows page shown above. In this case, a conditional flow will not be generated automatically for this operation, but you will still be able to call it. If necessary, you can manually configure the flow later, as described in Configuring flows.

  11. Step through the remaining pages in the wizard to complete the proxy configuration.

The following figure shows the Develop view in the Edge UI for the Mock-Target-API proxy. (Note that a conditional flow is not automatically generated for the Get help operation.)

XML to JSON policy in flow

 

 

Help or comments?