【问题标题】:API for WSO2 API ManagerWSO2 API 管理器的 API
【发布时间】:2012-09-15 00:26:51
【问题描述】:

是否有我可以使用的 WSO2 API Manager API?比如说,获取 API 或其他内容的列表。我听说有一个用于此的 SOAP API,但我找不到任何关于它的信息。我希望有人得到一些信息。我发现这个 XML 文件(如下所列)可能是我需要的,也可能不是我需要的,但在 SOAP 方面我完全是菜鸟,不知道我需要什么。这是文件内容。这是 WSDL 文件的样子吗?

<?xml version="1.0" encoding="UTF-8"?><serviceGroup name="API" successfullyAdded="true">
    <service name="API" exposedAllTransports="true" serviceDeployedTime="1347567758279" successfullyAdded="true">
        <operation name="getAPI">
            <parameter name="AuthorizationAction">/permission/admin/manage/resources/govern/apis/list</parameter>
            <module name="addressing" version="4.0" type="engagedModules"/>
            <module name="relay" version="4.0" type="engagedModules"/>
        </operation>
        <operation name="updateAPI">
            <parameter name="AuthorizationAction">/permission/admin/manage/resources/govern/apis/add</parameter>
            <module name="addressing" version="4.0" type="engagedModules"/>
            <module name="relay" version="4.0" type="engagedModules"/>
        </operation>
        <operation name="getAPIDependencies">
            <parameter name="AuthorizationAction">/permission/admin/manage/resources/govern/apis/list</parameter>
            <module name="addressing" version="4.0" type="engagedModules"/>
            <module name="relay" version="4.0" type="engagedModules"/>
        </operation>
        <operation name="addAPI">
            <parameter name="AuthorizationAction">/permission/admin/manage/resources/govern/apis/add</parameter>
            <module name="addressing" version="4.0" type="engagedModules"/>
            <module name="relay" version="4.0" type="engagedModules"/>
        </operation>
        <operation name="getAPIArtifactIDs">
            <parameter name="AuthorizationAction">/permission/admin/manage/resources/govern/apis/list</parameter>
            <module name="addressing" version="4.0" type="engagedModules"/>
            <module name="relay" version="4.0" type="engagedModules"/>
        </operation>
        <operation name="deleteAPI">
            <parameter name="AuthorizationAction">/permission/admin/manage/resources/govern/apis/add</parameter>
            <module name="addressing" version="4.0" type="engagedModules"/>
            <module name="relay" version="4.0" type="engagedModules"/>
        </operation>
        <bindings>
            <binding name="APISoap12Binding">
                <operation name="getAPI"/>
                <operation name="updateAPI"/>
                <operation name="getAPIDependencies"/>
                <operation name="addAPI"/>
                <operation name="deleteAPI"/>
                <operation name="getAPIArtifactIDs"/>
            </binding>
            <binding name="APIHttpBinding">
                <operation name="getAPI"/>
                <operation name="updateAPI"/>
                <operation name="getAPIDependencies"/>
                <operation name="addAPI"/>
                <operation name="deleteAPI"/>
                <operation name="getAPIArtifactIDs"/>
            </binding>
            <binding name="APISoap11Binding">
                <operation name="getAPI"/>
                <operation name="updateAPI"/>
                <operation name="getAPIDependencies"/>
                <operation name="addAPI"/>
                <operation name="deleteAPI"/>
                <operation name="getAPIArtifactIDs"/>
            </binding>
        </bindings>
        <policies/>
        <module name="addressing" version="4.0" type="engagedModules"/>
        <module name="relay" version="4.0" type="engagedModules"/>
        <parameter name="enableMTOM">true</parameter>
        <parameter name="adminService">true</parameter>
        <parameter name="AuthorizationAction">/permission/admin/login</parameter>
        <parameter name="hiddenService">true</parameter>
    </service>
</serviceGroup>

【问题讨论】:

    标签: api soap wsdl wso2 wso2-am


    【解决方案1】:

    是的,有一个使用 Jaggery 构建的 javascript API 层,可用于以 REST 方式使用 API Manager 相关功能。

    目前,您可以在两个 jaggery 应用程序 [store/publisher] 中找到它们,下面是location。导航到它,您会注意到“blocks”目录中有几个子目录,根据条款api manager相关功能分类[例如:item-add,listing,search等]。打开reuired catogory,将有一个名为'ajax'的子文件夹,因为我们以AJAX方式传递请求。在里面你可以找到jag包含可以以 REST 方式使用的相关 API 方法的文件。

    然而,我们尚未将此 API 层与 Web 应用程序流分开以使用户易于查找和使用 API,但我们计划在不久的将来将此 API 层单独添加到应用程序中。

    目前,你可以做的就是去上面提到的位置,找到相关的API方法来消费。举例来说,如果你想在api-publisher中消费addAPI方法,你可以做的是导航到location 中'item-add' 目录的'ajax' 子目录。你会看到有一个名为'add.jag' 的文件。打开它并确定什么是动作[例如:addAPI] 和什么是您需要传递以处理操作的请求参数[例如:APIName、版本等]。然后使用 REST 客户端将 http 请求发送到 API 函数。[例如:CURL]。例如,您的 http 请求将是以下方式。

    "http://ip:port/publisher/site/blocks/item-add/ajax/add.jag -d "action=addAPI&name=API1&version=1.0.0&description=API&endpoint=http://search.twitter.com&wsdl=&tags=open,social&tier=Silver&thumbUrl=https://lh6.ggpht.com/RNc8dD2hXG_rWGzlj09ZwAe1sXVvLWkeYT3ePx7zePCy4ZVV2XMGIxAzup4cKM85NFtL=w124&context=/api2&tiersCollection=Gold&resourceCount=0&resourceMethod-0=POST&uriTemplate-0=/*";"

    您可以从下载包的以下位置找到基于此 JavaScript 层编写的三个示例 [TwitterSearch、YahooPlaceFinder、YoutubeFinds]。 {API 管理器主页}/samples

    导航到上述位置内的上述每个三个示例,并查看 APIPopulator.sh 脚本,以更好地了解 API Manager 相关的 jaggery API 是如何从中使用的。

    除此之外,对于 WSO2 API Manager 实现其后端主要功能,我们没有使用 Web 服务调用,而是使用 Java API,可以从 here 找到。您可以使用该 API 进行自定义实现.你可以从here的这个java API找到我们的java[back-end]实现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-03
      • 2019-10-28
      • 2016-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多