首页 文章

如何在WSO2 ESB上发布现有API

提问于
浏览
0

我似乎找不到一篇关于如何通过WSO2 ESB作为代理发布现有restAPI的简单文章 .

我有一个现有的API,它根据 Headers 上的内容类型响应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并尝试实现以下操作:

  • 记录API调用

  • 基于标准的消息/分叉呼叫

  • 集中所有API调用身份验证模型

  • 是否可以只运行ESB服务器来实现此功能?

提前致谢!!

2 回答

  • 0

    设置代理API,这只能通过

    • 在main-> service-bus-> API下添加API选项

    • 为API提供自定义名称,这是WSO2 ESB上的标识 .

    • 提供您自定义资源的上下文 .

    • 转到源视图并添加以下源

    片段的开头

    <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

    通过您的方法,您已在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

相关问题