wso2 API Manager 使用示例
基础平台组
2015年08月
目录
前言 (1)
1.1修订历史 (1)
1.2用户范围 (1)
1.3参考 (1)
第1章概述 (2)
1.1背景 (2)
第2章使用示例 (3)
2.1将SOAP W EBSERVICE 注册为REST API-1 (3)
2.1.1 部署示例Webservice (3)
2.1.2 创建并调用API (4)
2.2将SOAP W EBSERVICE 注册为REST API-2 (14)
2.2.1 准备Webservice (14)
2.2.2 创建并调用API (15)
2.2.3 总结 (23)
2.3使用API M ANAGER +ESB配置高级中介-3 (27)
2.3.1 在ESB 上创建API (27)
2.3.2 在API Manager 的Publisher 中创建API (29)
2.3.3 在API Manager 的Store 中调用API (33)
2.4使用API M ANAGER 管理W EB S ERVICE (36)
2.4.1 准备Webservice (36)
2.4.2 创建API (36)
2.4.3 调用API (39)
前言
1.1修订历史
状态标识:C –Created A- Added M - Modified D - Deleted
1.2用户范围
本文记录了一些使用wso2 API Manager 的典型示例,适合需要了解、使用wso2 API Manager的用户阅读。
1.3参考
●SOAP web service as REST API using WSO2 API Manager -1:
https://www.doczj.com/doc/1b10320548.html,/2015/01/soap-web-service-as-rest-api-using-wso2.html
●SOAP webservice as a REST API - WSO2 API Manager (1.9) -2:
https://www.doczj.com/doc/1b10320548.html,/2015/08/soap-webservice-as-rest-api-wso2-api.html
●Advance Mediation with WSO2 API Manager(1.9) + WSO2 ESB -3 :
https://www.doczj.com/doc/1b10320548.html,/2015/08/advance-mediation-with-wso2-api-manager.html
第1章概述
1.1背景
本文记录了一些使用wso2 API Manager 的典型示例,在类似场景中使用wso2 API Manager的参考。
第2章使用示例
2.1将SOAP Webservice 注册为REST API - 1
2.1.1部署示例Webservice
打开wso2as-5.2.1/repository/conf 目录下的carbon.xml文件,设置offset 元素的值为1,然后启动服务器。
打开AS的管理控制台(https://[host or IP]:9444/carbon/)页面并登录(admin/admin),使用aar文件部署向导部署SimpleStockQuoteService.aar文件(SimpleStockQuoteService.aar是ESB上的演示程序,可在ESB的目录下找到:wso2esb-4.8.1\samples\axis2Server\repository\services)。
几秒钟之后,刷新Services菜单下的List菜单,可以看到“SimpleStockQuoteService”服务出现在了右边的服务列表中。如下图所示:
单击“SimpleStockQuoteService”的名字,就可以看到此服务的WSDL路径(1)和端点(2),以及一些其他特性。如下图所示:
使用SOAP UI调用一些操作,验证此服务可用。本例调用“getQuote”操作,如下图所示。
2.1.2创建并调用API
本例将使用API Manager暴露“getQuote”操作,如下所示:
GET : http://
2.1.2.1编写中介序列
可以使用WSO2 Developer Studio在图形化界面创建输入序列,也可以直接写XML。
打开WSO2 Developer Studio,File --> New project ---> Other,然后选择“ESB Config Project”,再选择“New ESB Config Project”,名称为“ESBConfigProject”。然后创建序列(Sequence),输入序列将输入参数转换成SOAP请求。如下图所示:
切换到“source”视图即是xml,编写好的xml如下所示:
xmlns:soapenv="https://www.doczj.com/doc/1b10320548.html,/soap/envelope/" xmlns:xsd="http://services.samples/xsd" xmlns:ser="http://services.samples">
再创建输出序列。将响应消息转换成JSON。
切换到“source”视图即是xml,编写好的xml如下所示:
在developer studio中创建新的复合应用(composite application)项目来构件一个carbon归档文件(在创建过程中选择“ESBConfigProject”)。
使用右上角的按钮导出.car文件(ESBCARApp_1.0.0.car)。
在API Manager的管理控制台创建一个新的服务器角色,名称为“EnterpriseServiceBus”,用于在API Manager上部署ESB car 文件。如下图所示:
在wso2am-1.9.0/repository/deployment/server/ 目录下创建新的部署目录,命名为“carbonapps”。
拷贝ESBCARApp_1.0.0.car 文件到wso2am-1.9.0/repository/deployment/server/carbonapps 目录下,此car文件将会在API Manager中部署以上创建的两个序列。
2.1.2.4在API Manager 的Publisher 中发布API
在Publisher中创建API。
Name : StockQuoteAPI
Context : stockquote
Version : 1.0.0
Resource method : getquote
Query parameter : name
如下图所示:
选择端点类型为“Address Endpoint ”
(http://localhost:9764/services/SimpleStockQuoteService/)。
单击“Advance Options”按钮,在弹出的对话框中选择消息格式为“SOAP 1.1”。
进入“Manage”向导,选择节流等级,保存并发布。
2.1.2.5在API Manager 的Store 中调用API
进入Store,使用一个应用订阅API并生成访问令牌。如下图所示:
在Store的API Console中调用API。如下图所示:
在SOAP UI中调用API,如下图所示:
SOAPAction 才能成功调用。如下图所示:
2.2将SOAP Webservice 注册为REST API - 2
2.2.1准备Webservice
本节使用公开的weather服务作为Webservice 的真实后端。地址如下:
https://www.doczj.com/doc/1b10320548.html,/globalweather.asmx
此SOAP 服务有一个名称为“GetCitiesByCountry”的操作,可以使用SOAP UI 直接访问,结果如下图所示:
2.2.2创建并调用API
在API Manager上创建API,暴露此服务操作为REST 操作。
例如:暴露GetCitiesByCountry 的POST 方法为如下:
https://localhost:8243/weather/v1.0.0/GetCitiesByCountry
则请求负载为:
{"request":{"country":"Romania"}}
2.2.2.1编写输入序列
编写输入中介序列,从请求消息中读取“country”,并转化为后端服务期望的SOAP 负载(本例将此文件保存为JSONtoSOAP.xml)。登录到Carbon管理控制台,将JSONtoSOAP.xml 文件在registry中上传到/_system/governance/apimgt/customsequences/in 下面。
xmlns:soapenv="https://www.doczj.com/doc/1b10320548.html,/soap/envelope/" xmlns:web="https://www.doczj.com/doc/1b10320548.html,">
2.2.2.2编写输出序列
编写输出中介序列将SOAP响应消息换成JSON(本例将把此文件保存为SOAPtoJSON.xml)。登录到Carbon管理控制台,将SOAPtoJSON.xml 文件在registry 中上传到/_system/governance/apimgt/customsequences/out 下面。
登录到Publisher创建API,如下图所示。
然后定义端点值为:https://www.doczj.com/doc/1b10320548.html,/globalweather.asmx 。