您正在查看 Apigee Edge 文档。
前往 Apigee X 文档。 信息
学习内容
通过本教程,您将学会:
- 根据 WSDL 文件生成 Edge API 代理。
- 了解 RESTful SOAP 代理类型与直通 SOAP 代理之间的区别。
在本教程中,您将了解如何在基于 SOAP 的 Web 服务前面放置 Edge API 代理。
本教程演示了如何在基于 SOAP 的服务前面生成新的 RESTful API。虽然此处未详细介绍,但您还可以生成一个直通代理,该代理接受 SOAP 载荷并将其传递给后端服务。
所需条件
- Apigee Edge 账号。如果您还没有该账号,可以按照创建 Apigee Edge 账号中的说明进行注册。
创建代理
在此步骤中,您将让 Edge 生成位于 SOAP 服务前面的代理。SOAP API 代理有两种类型:
- REST-SOAP-REST 代理类型会生成一个具有 SOAP 转换层的新 RESTful API。客户端会像调用其他 RESTful 服务一样调用该服务,并传递后端服务所需的查询参数。Edge 会将此内容转换为服务所需的 SOAP 载荷。
- 直通式代理代理类型允许客户端仅传入 SOAP 载荷。这样一来,SOAP 服务调用便可受益于 Edge 管理功能。
Edge
如需使用 Edge 界面代理 SOAP 服务,请执行以下操作:
- 登录 apigee.com/edge。
- 在左侧导航栏中,选择开发 > API 代理。
- 点击 +代理。
- 点击 SOAP 服务。
- 在“代理详情”页面上,输入以下内容:
字段 说明 WSDL 来源 选择:网址
将以下 WSLD 网址复制并粘贴到输入网址字段中:
https://ws.cdyne.com/delayedstockquote/delayedstockquote.asmx?wsdl
点击:验证
Apigee Edge 会获取 WSDL 文件并读取该文件,以发现 SOAP 服务支持的操作列表。
名称 保持不变:
delayedstockquote这是您要创建的 API 代理的名称。
基本路径 保持不变: /delayedstockquote说明 (可选)添加说明,例如:股票报价 WSDL API 代理 - 点击下一步。
- 在通用政策页面的安全性:授权下,选择直通(无授权)。
- 点击下一步。
- 在 WSDL 操作页面上,选择:REST 到 SOAP 到 REST。
选择代理类型后,Edge 会显示将为其生成 REST API 路径的操作列表。您可以通过此列表从 WSDL 中找到的操作中进行选择(如果您要查找特定的操作集)。请注意,该表还显示了 REST 客户端可用于调用后端 SOAP 服务的资源。
将页面上的所有其他选择项保持原样。
- 点击下一步。
- 点击下一步,接受虚拟主机默认设置。
- 在摘要页面上,点击“可选部署”下的测试,然后点击创建和部署。
Edge 会生成 RESTful API 代理,并将其部署到
test环境。它会从 WSDL 中确定服务支持的操作、输入参数等。Edge 会建议每项操作应使用哪种 HTTP 方法。通常,Edge 会将操作转换为 GET 请求,这种请求的优势在于可以缓存。Edge 还会设置后端目标端点,该端点可能会因 SOAP 操作而异。除非您要自定义新的 API 代理(在本教程中,您不会这样做),否则这就是全部内容。您可以继续测试新的 API 代理。
经典边缘(私有云)
如需使用经典版 Edge 界面代理 SOAP 服务,请执行以下操作:
- 登录
http://ms-ip:9000,其中 ms-ip 是管理服务器节点的 IP 地址或 DNS 名称。 - 在顶部导航栏中依次选择 API > API 代理。
- 点击 + API 代理。
- 点击 SOAP 服务。
- 在“代理详情”页面上,输入以下内容:
字段 说明 WSDL 选择:示例网址
然后选择:
…delayedstockquote.asmx?WSDL点击:验证
Apigee Edge 会获取 WSDL 文件并读取该文件,以发现 SOAP 服务支持的操作列表。
代理名称 输入:
delayedstockquote这是您要创建的代理的名称。
代理基本路径和说明 保留原样。 - 点击下一步。
- 在 WSDL 页面上,进行以下选择:
在此字段中 执行该操作 API 代理类型 选择:REST 到 SOAP 到 REST
选择代理类型后,Edge 会显示将为其生成 REST API 路径的操作列表,如图所示。此列表可让您从 WSDL 中找到的操作中进行选择(如果您要查找特定的操作集)。请注意,该表还显示了 REST 客户端可用于调用后端 SOAP 服务的资源。
目前,只需保持选中第一组操作即可。
端口类型:DelayedStockQuoteSoap 选择所有三个 WSDL 操作。其他设置保持不变。
- 点击下一步。
- 在“安全性”页面上,选择直通(无)。
- 点击下一步。
- 接受虚拟主机默认设置,然后点击下一步。
- 在“构建”页面上,接受默认设置,然后点击构建和部署,让 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 到 SOAP 到 REST”代理 SOAP 服务时,Edge 会自动生成 OpenAPI 规范。您可以使用 OpenAPI 规范为 API 生成 API 文档。
如需获取 OpenAPI 规范,只需访问以下网址:
curl https://{ORG}-{ENV}.{DOMAIN}/delayedstockquote/openapi.json额外学分:如何确定要使用哪些资源、动词和查询参数?
在测试 API 调用中,您在 c网址 调用中使用了特定的资源和查询参数来调用后端 SOAP 服务。但您如何自行了解这些信息呢?
资源和动词
在创建代理时,您在 API 代理向导中看到了 SOAP 操作如何映射到 API 动词和资源。但如果您没有记下这些信息,可以在创建代理后按以下步骤查找。
在 API 代理的开发标签页中,您会在左侧的“导航器”窗格中看到“代理端点”下方的流列表。点击您感兴趣的流程。例如,GetQuote 流程就是一个不错的选择。然后在“代码”窗格中查看 XML,其中 <Condition> 元素显示了流程的资源路径和动词:/quote 和 GET。

查询参数
选择 GetQuote 流后,点击图形化流程视图中的第一个政策。它应是一项“提取变量”政策,用于捕获预期会传递的查询参数:StockSymbol 和 LicenseKey。(如果您在网上搜索 SOAP 服务,会找到有关传递 LicenseKey 的说明。)

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