我似乎找不到一篇关于如何通过WSO2 ESB作为代理发布现有restAPI的简单文章。
我有一个现有的API,它根据标题上的内容类型响应Json或XML输出。我想通过WSO2 ESB作为代理发布此api。在这种情况下我不认为需要WSO2应用服务器,因为其余的api正在自己的应用服务器上运行。
API: http://somehost.com:8001/api/BusinessApi/GetContentTypes
响应:
[{"contentTypeID":1,"name":"Movies","isTop":true,"subLevels":1,"contentTypeIdBase":1},{"contentTypeID":2,"name":"TV Show","isTop":true,"subLevels":3,"contentTypeIdBase":4},{"contentTypeID":3,"name":"TV Season","isTop":false,"subLevels":2,"contentTypeIdBase":4},{"contentTypeID":4,"name":"TV Episode","isTop":false,"subLevels":1,"contentTypeIdBase":4},{"contentTypeID":5,"name":"Music Album","isTop":true,"subLevels":2,"contentTypeIdBase":6},{"contentTypeID":6,"name":"Music Track","isTop":false,"subLevels":1,"contentTypeIdBase":6},{"contentTypeID":7,"name":"Music Video","isTop":false,"subLevels":1,"contentTypeIdBase":7},{"contentTypeID":8,"name":"Book Set","isTop":false,"subLevels":1,"contentTypeIdBase":8},{"contentTypeID":9,"name":"Books","isTop":true,"subLevels":1,"contentTypeIdBase":9}]
目标是通过WSO2 ESB发布api并尝试实现以下操作:
先谢谢!!
答案 0 :(得分:1)
设置代理API,这只能通过
完成片段开头
<api xmlns="http://ws.apache.org/ns/synapse" name="GetC" context="/api1">
<resource methods="GET" url-mapping="/">
<inSequence>
<log/>
<send>
<endpoint>
<address uri="http://somehost.com:8001/api/businessApi/GetContentTypes"/>
</endpoint>
</send>
</inSequence>
<outSequence>
<log/>
<send/>
</outSequence>
</resource>
</api>
摘录摘要
您现在应该通过ESB代理URL访问api
答案 1 :(得分:0)
通过您的方法,您已在ESB中创建了一个api,它将请求传递给您的后端api。在此期间,您希望记录每个api调用并控制身份验证。我不了解分叉要求。
你试过WSO2 API Manager吗?它将允许您使您的api成为托管API。即,您将能够通过oauth令牌控制对api的访问。您也可以记录api调用(尽管由于性能原因记录每个调用并不是一件好事)。
如果您将其与WSO2 DAS集成,您将能够看到一些有用的统计数据。这是API Manager文档。
https://docs.wso2.com/display/AM1100/WSO2+API+Manager+Documentation