1

我可以使用 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>
4

1 回答 1

2

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

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

然而,我们还没有将这个 API 层从 Web 应用程序流中分离出来,以使用户更容易找到和使用 API,但我们计划在不久的将来将此 API 层单独添加到应用程序中。

目前,你可以做的只是去上面提到的位置,找到相关的API方法来消费。例如,如果你想在api-publisher中使用addAPI方法,你可以做的是导航到' ajax'子目录'item-add'目录中的位置。你会看到有一个名为'add.jag'的文件。打开它并识别什么是动作[例如:addAPI]和请求参数是什么[ eg:APIName,version,etc]你需要传递来处理动作。然后使用REST客户端向API函数发送http请求。[eg: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&uri

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

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

添加到上面,对于 WSO2 API Manager 实现其后端主要功能,我们没有使用 Web 服务调用,而是可以从这里找到的 java API 。您可以使用该 API 进行自定义实现。您可以找到我们的来自这里的 java API 的 java[back-end] 实现。

于 2012-09-15T07:56:04.707 回答