如何在WSO2 ESB上发布现有API

时间:2016-06-01 10:46:10

标签: api wso2

我似乎找不到一篇关于如何通过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并尝试实现以下操作:

  1. 记录API调用
  2. 基于标准的消息/分叉呼叫
  3. 集中所有API调用身份验证模型
  4. 是否可以运行ESB服务器来实现此功能?
  5. 先谢谢!!

2 个答案:

答案 0 :(得分:1)

设置代理API,这只能通过

完成
  1. 在main-> service-bus-> API
  2. 下添加API选项
  3. 为API提供自定义名称,即WSO2 ESB上的标识。
  4. 提供您自定义资源的上下文。
  5. 转到源视图并添加以下源
  6. 片段开头

    <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