通过wso2api管理器调用wso2greg Artifcat Rest API无法正常工作 - 任何想法都可以修复

时间:2016-06-28 00:18:24

标签: api rest wso2 wso2-am wso2greg

更新的问题,以澄清更多。

我有两台服务器:包含自定义文物的wso2greg和wso2am(api manager)。

gouvernance寄存器旨在在内部使用(intranet),其中一些功能旨在从外部公开,并通过它的其余API加入。

为了管理wso2greg API访问,我们使用了一个wso2am(api manager)服务器,我们在那里定义了一个充当wso2greg API代理的API。

在我们的实验中,我们发现了下面描述的奇怪行为:

  1. 成功直接调用wso2greg artefact rest api(确切的url是 https://localhost:9443/resource/1.0.0/artifact/_system/governance/myartifact/art1我正在使用邮递员从这里https://docs.wso2.com/display/Governance520/Resources+with+REST+API)跟踪此REST API的文档。 API按照文档中的描述做出反应。

  2. 在调用相同的REST API时,在wso2greg服务器上报告错误500,但是通过API管理器(使用发布者应用程序)。

  3. 总结如下:

    • 直接调用wso2greg rest API woks很好并且得到了结果
    • 在wso2am中添加此工作API而不是调用它总是会出现错误500。

    作为额外信息:

    • 使用其他wso2greg REST API测试,例如“评级”或“评论”,我可以直接成功调用它或抛出Api经理。
    • 试图获取与默认wso2greg工件相关的信息,例如restservice,但是当(错误500)与API管理器进行交互时,我得到了完全相同的pb。
    • 使用这两种产品的最新版本:wso2greg版本5.2.0和wso2am版本1.10.0

    请提供建议,或澄清如何在wso2greg中调试此内部错误。

    此致

2 个答案:

答案 0 :(得分:0)

我希望您不使用G-Reg + APIM功能installed version。我假设您使用单独的G-reg 5.2.0和APIM x.x.x.由于您使用第二个选项,因此无法将G-Reg REST API与APIM一起使用,因此您必须使用API​​M REST API。

Get an API

Description:       Get details of a specific API.
URI:               http://localhost:9763/publisher/site/blocks/listing/ajax/item-list.jag
URI Parameters: action=getAPI&name=xxx&version=xxx&provider=xxx
HTTP Methods:   POST
Example:    
               curl -X POST -b cookies http://localhost:9763/publisher/site/blocks/listing/ajax/item-list.jag -d "action=getAPI&name=PhoneVerification&version=1.0.0&provider=admin"

请按照this link查看所有api用法。

答案 1 :(得分:0)

感谢@thusharaK提供帮助。

解决方案是添加消息中介策略,该策略强制输出json标头。

现在我从API管理器得到了正确的答案(实际上,我在测试控制台中得到了二进制响应,并且在邮递员中得到了json响应)。