代理 SOAP 服务

<ph type="x-smartling-placeholder"></ph> 您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
信息

学习内容

通过本教程,您将学会:

  • 从 WSDL 文件生成 Edge API 代理。
  • 了解 RESTful SOAP 代理类型与直通式 SOAP 之间的区别 代理。

在本教程中,您将学习如何在基于 SOAP 的网页前放置 Edge API 代理 服务。

本教程说明如何在基于 SOAP 的 API 之前生成新的 RESTful API 服务。虽然此处未作详细介绍,但您也可以生成直通式代理 该方法会接受 SOAP 载荷并将其传递给后端服务。

所需条件

创建代理

在这里,您可以让 Edge 生成位于 SOAP 服务前面的代理。SOAP API 代理有两种类型:

  • REST-SOAP-REST 代理类型会生成带有转换 改为 SOAP。客户端会像调用其他 RESTful 服务一样调用它,并传递查询 后端服务所需的参数Edge 可将其转换为 SOAP 载荷。 。
  • 直通式代理代理类型可让客户端直接传入 SOAP 载荷。 通过这种方式,SOAP 服务调用能够从 Edge 管理功能中受益。

Edge

如需使用 Edge 界面代理 SOAP 服务,请执行以下操作:

  1. 登录 apigee.com/edge
  2. 在左侧导航栏中,选择开发 > API 代理
  3. 点击 +代理
  4. 点击 SOAP 服务
  5. 在“代理详情”页面上,输入以下内容:

    字段 说明
    WSDL 源代码

    选择:网址

    复制以下 WSLD 网址并将其粘贴到输入网址字段中:

    https://ws.cdyne.com/delayedstockquote/delayedstockquote.asmx?wsdl

    点击:验证

    Apigee Edge 获取并读取 WSDL 文件以发现操作列表 SOAP 服务所支持的

    名称

    保持不变:delayedstockquote

    这是您要创建的 API 代理的名称。

    基本路径 保持不变:/delayedstockquote
    说明 (可选)添加说明,如:股票报价 WSDL API 代理
  6. 点击下一步
  7. 通用政策页面的安全性:授权下,选择通过(无授权)
  8. 点击下一步
  9. WSDL 操作页面上,选择:REST to SOAP to REST

    选择代理类型后,Edge 会显示 它将生成 REST API 路径通过此列表,您可以 从 WSDL 提供的操作中进行选择(如果您有特定的 )。请注意,该表还显示了 REST 客户端可用于调用后端 SOAP 服务。

    保持页面上的所有其他选择不变。

  10. 点击下一步
  11. 点击下一步接受虚拟主机默认设置。
  12. 摘要页面的“可选部署”下,点击测试,然后点击创建和部署

    Edge 生成 RESTful API 代理,并将其部署到 test 环境。它通过 WSDL 确定服务的 支持的运算、输入参数等。Edge 会推荐要使用的 HTTP 方法 。通常,Edge 会将操作转换为 GET 请求,该请求具有 以及可缓存的优点Edge 还会设置后端目标端点, 可能因 SOAP 操作而异。

    除非您要自定义新的 API 代理(并且您未学习本教程),否则 整个过程您可以继续测试新的 API 代理。

传统 Edge(私有云)

如需使用传统 Edge 界面代理 SOAP 服务,请执行以下操作:

  1. 登录 http://ms-ip:9000,其中 ms-ip 是管理服务器节点的 IP 地址或 DNS 名称。
  2. 选择 API >API 代理
  3. 点击 + API 代理
  4. 点击 SOAP 服务
  5. 在“代理详情”页面上,输入以下内容:

    字段 说明
    WSDL

    选择:示例网址

    然后选择:
    ...delayedstockquote.asmx?WSDL

    点击:验证

    Apigee Edge 获取并读取 WSDL 文件以发现操作列表 SOAP 服务所支持的

    代理名称

    输入:delayedstockquote

    这是您要创建的代理的名称。

    代理基本路径说明 保留原样。
  6. 点击下一步
  7. 在 WSDL 页面上,进行以下选择:
    在此字段中 执行该操作
    API 代理类型

    选择:REST 到 SOAP 到 REST

    选择代理类型后,Edge 会显示 而是会生成 REST API 路径,如下所示。通过此列表 从 WSDL 提供的操作中进行选择(如果您有特定的 )。请注意,该表还显示了 REST 客户端可用于调用后端 SOAP 服务。

    现在,只需让第一组操作保持选中状态即可。

    端口类型:DelayedStockQuoteSoap 选择全部三项 WSDL 操作。其他设置保持不变。

  8. 点击下一步
  9. 在“安全性”页面上,选择通过(无)
  10. 点击下一步
  11. 接受虚拟主机默认设置,然后点击下一步
  12. 在“构建”页面上,接受默认值,然后点击构建和部署以 让 Edge 开始生成代理。

    Edge 会生成 RESTful API 代理。它通过 WSDL 确定服务的 支持的运算、输入参数等。Edge 会推荐要使用的 HTTP 方法 。通常,Edge 会将操作转换为 GET 请求,该请求具有 以及可缓存的优点Edge 还会设置后端目标端点, 可能因 SOAP 操作而异。

    除非您要自定义新的代理(并且未学习本教程),否则就大功告成了 整个过程您可以继续测试新代理。

测试代理

如需试用您创建的代理,请打开命令提示符并使用 c网址。输入以下命令 其中:

  • ORG 是您在其中创建代理的 Edge 组织的名称。
  • ENV 是代理部署到的环境。
  • DOMAIN 对应于您正在使用的 Edge 实例。
curl "https://{ORG}-{ENV}.{DOMAIN}/delayedstockquote/quote?StockSymbol=GOOG&LicenseKey=0"

例如,如果贵组织是“docfood”,则环境为 test,并且您使用的是 Edge 企业云,则可以运行如下命令: :

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

如果为 StockSymbol 查询参数输入 GOOG,您应该会得到 Alphabet Inc. C 类股票的当前价格。例如:

{  
   "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
      }
   }
}

获取自动生成的 OpenAPI 规范

当您使用“REST to SOAP to REST”代理 SOAP 服务时,Edge 会自动生成 OpenAPI 规范。您可以使用 用于生成 API 的 API 文档的 OpenAPI 规范。

要获取 OpenAPI 规范,只需访问以下网址:

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

额外学分:如何 您知道要使用哪些资源、动词和查询参数吗?

在测试 API 调用中,您在 c网址 调用中使用了特定资源和查询参数 后端 SOAP 服务。但您自己如何才能找到答案呢?

资源和动词

在创建代理时,API 代理向导中介绍了 SOAP 操作 会映射到 API 动词和资源。但如果您没有把这些地方写下来, 会在创建代理后查找

在 API 代理的开发标签页上,您会在左侧的“导航器”窗格中看到 代理端点下的流列表。点击您感兴趣的流程。例如: GetQuote 流程是一个不错的选择。然后在“代码”窗格中查看 XML, 它显示了 <Condition> 中流的资源路径和动词元素: /quoteGET

查询参数

选择 GetQuote 流程后,点击图表中的第一个政策 流程视图它应该是一个“提取变量”政策,用于捕获 预期传递的值:StockSymbolLicenseKey。(如果使用的是 搜索 SOAP 服务,它就会告诉您为 LicenseKey 传递什么内容)。

捕获的查询参数将保存为变量,并供下一项政策用于 构建 SOAP 消息。