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.

Proxy a SOAP service

学習内容

このチュートリアルを通じて、以下のことを学びます。

  • Edge API プロキシを WSDL ファイルから生成します。
  • RESTful SOAP プロキシタイプとパススルー SOAP プロキシの違いを理解します。

このチュートリアルでは、SOAP ベースの Web サービスの前に Edge API プロキシを配置する方法を学びます。

このチュートリアルでは、ユーザーの SOAP ベースのサービスの前に新しい RESTful API を生成する方法を示します。ここでは詳しくは説明しませんが、SOAP ペイロードを受け入れてバックエンドサービスに渡すパススループロキシを生成することも可能です。

必要なもの

プロキシの作成

ここでは、SOAP サービスの前に置くプロキシを Edge に生成させます。

RESTful API か SOAP パススルーか?

REST-SOAP-REST プロキシタイプは、SOAP への変換層を備えた新しい RESTful API を生成します。クライアントは、それらが他の RESTful サービスであるかのように呼び出し、バックエンドサービスによって必要とされるクエリパラメータを渡します。Edge は、これをサービスによって予期される SOAP ペイロードに変換します。

これとは対照的に、パススループロキシを使用した場合、クライアントは SOAP ペイロードを渡すだけです。これは、SOAP サービス呼び出しは、Edge 管理機能のメリットを受ける方法となります。

  1. 作業する組織 (organization) の Edge 管理 UI に移動します。Edge クラウドの場合は、https://enterprise.apigee.com に移動し、ログインし、作業する組織を選択します。
  2. メインメニューで、「APIs」 > 「API Proxies」をクリックし、「+ API Proxy」ボタンをクリックします。
  3. 「Build a Proxy」ウィザードで、「SOAP service」を選択します。
  4. 「Next」をクリックします。
  5. 「Details」ページで、以下のフィールドに記入します。

    フィールド 操作内容
    WSDL

    次を選択します: Example URL

    Then select:
    ...delayedstockquote.asmx?WSDL

    次をクリックします: Validate

    Apigee Edge により、WSDL ファイルが取得され、読み込まれて、SOAP サービスがサポートしている操作のリストが検出されます。

    Proxy Name

    Enter: delayedstockquote

    これは、作成するプロキシの名前です。

    Proxy Base PathDescription そのままにしておきます。
  6. 「Next」をクリックします。
  7. 「WSDL」ページで、以下の選択を行います。
    フィールド 操作内容
    API Proxy Type

    次を選択します: REST to SOAP to REST

    Once you select the proxy type, Edge displays the list of operations for which it will generate REST API paths, as shown here. This list gives you a chance to select from among the operations found in the WSDL (in case you have a particular set you're looking for). Notice that the table also displays resources that a REST client can use to call the backend SOAP service.

    ここでは、最初の操作セットが選択されている状態にしておきます。

    Port Type: DelayedStockQuoteSoap 3 つの WSDL 操作をすべて選択します。他の設定はそのままにしておきます。

  8. 「Next」をクリックします。
  9. 「Security」ページで、「Pass through (none)」を選択します。
  10. 「Next」をクリックします。
  11. 「Virtual Host」のデフォルト値を受け入れ、「Next」をクリックします。
  12. In the Build page, accept the defaults and click Build and Deploy to have Edge start generating the proxy.

    Edge により、RESTful API プロキシが生成されます。WSDL から、サービスがサポートしている操作や入力パラメータなどが判別されます。操作ごとに使用する HTTP メソッドが提案されます。一般に、Edge により、操作は GET リクエストに変換されます。GET リクエストには、キャッシュ可能であるという利点があります。Edge により、バックエンドターゲットエンドポイントもセットアップされます。バックエンドターゲットエンドポイントは SOAP 操作ごとに異なることがあります。

    新しいプロキシをカスタマイズする (このチュートリアルでは行っていません) わけではない限り、以上で全部です。新しいプロキシのテストに進むことができます。

パススルー SOAP タイプを選択した場合は、クライアントが渡すことが予期される SOAP ペイロードと操作のリストが表示されています。

プロキシのテスト

作成したプロキシを試してみるには、コマンドプロンプトを開き、cURL を使用します。以下のコマンドを入力します。ここで、

  • ORG は、プロキシを作成した Edge 組織の名前です。
  • ENV は、プロキシが展開されている環境 (environment) です。
  • DOMAIN は、使用している Edge インスタンスに対応します。
curl "https://{ORG}-{ENV}.{DOMAIN}/delayedstockquote/quote?StockSymbol=GOOG&LicenseKey=0"

For example, if your organization is docfood, environment is test, and you're using the Edge enterprise cloud, you'd run a command like this:

curl "https://docfood-test.apigee.net/delayedstockquote/quote?StockSymbol=GOOG&LicenseKey=0"

The LicenseKey query parameter value is a dummy/test value for the service.

If you entered GOOG for the StockSymbol query parameter, you should get the current price for Alphabet Inc. Class C stock. For example:

{"GetQuoteResponse":{"GetQuoteResult":{"StockSymbol":"GOOG","LastTradeAmount":819.55,"LastTradeDateTime":"2017-02-13T14:33:00","StockChange":5.88,"OpenAmount":816.0,"DayHigh":820.96,"DayLow":815.49,"StockVolume":785064,"PrevCls":813.67,"ChangePercent":"+0.72%","FiftyTwoWeekRange":"663.28 - 841.95","EarnPerShare":27.88,"PE":29.4,"CompanyName":"Alphabet Inc.","QuoteError":false}}}<

Get the auto-generated OpenAPI Specification

When you proxy a SOAP service using "REST to SOAP to REST," Edge automatically generates an OpenAPI Specification. You can use the OpenAPI Spec to generate API documentation for the API.

To get the OpenAPI Spec, simply visit this URL:

curl https://{ORG}-{ENV}.{DOMAIN}/delayedstockquote/openapi.json

Extra credit: How do you find out which resource, verb, and query parameters to use?

In the test API call, you used a specific resource and query parameters in your cURL call to the backend SOAP service. But how would you find that out on your own?

Resource and verb

In the API proxy wizard when you were creating the proxy, you saw how the SOAP operations would map to API verbs and resources. But if you didn't write those down, here's how you'd find out after the proxy is created.

On the API proxy's Develop tab, in the left Navigator pane you'll see a list of flows under the Proxy Endpoints. Click the flow you're interested in. For example, the GetQuote flow is a good candidate. Then view the XML in the Code pane, which shows the resource path and verb for the flow in the <Condition> element: /quote and GET.

Query parameters

With the GetQuote flow selected, click the first policy in the graphical flow view. It should be an Extract Variables policy that captures query parameters that are expected to be passed: StockSymbol and LicenseKey. (If you do a web search for the SOAP service, it tells you what to pass for the LicenseKey.)

The captured query parameters are saved as variables and used by the next policy to construct the SOAP message.

 

Help or comments?