是否可以在WSO2 API Manager版本1.4.0附带的API Publisher中注册带URI templates的端点?例如,我想注册一个端点,如:
/作业/ {作业ID} / PEMS
保存API后,我可以在API配置文件中看到这一位:
<resource methods="GET" url-mapping="/jobs/{jobid}/pems">
我尝试手动将XML文件从url-mapping更改为uri-template,即:
<resource methods="GET" uri-template="/jobs/{jobid}/pems">
但我仍然得到“在给定请求的API中找不到匹配的资源”。无论如何,这不是一个好的解决方法,因为我们需要开发人员能够从发布者应用程序注册这些端点。每当更改从API Publisher界面中保存到API时,'uri-template'都会恢复为'url-mapping'。
提前致谢。
答案 0 :(得分:2)
这是因为APIPublisher app在定义API资源时仅支持URL-Mappings。
如果要定义uri-template而不是url-mapping,可以通过手动更改api xml来实现。
但在此之前请确保在创建API时,您已在尝试的API中使用有效的url-mapping.So定义API,首先请从APIPublisher编辑API,以保留API资源的有效url-mapping模式然后更改其xml以匹配您提到的uri-template模式。
感谢;
答案 1 :(得分:0)
我们目前不支持uri-template模式。我们只支持网址映射 即使如果您将后端API配置(即api配置文件)编辑为url-mappings,它也无法工作,因为我们在请求到达中介引擎之前验证请求。
您可以使用ESB RESTApi作为后端服务端点。也就是说,使用uri-templates(在ESB中支持它)在wso2esb中定义RESTAPI,并将该API作为服务端点从wso2APIManager指向url-映射模式。
答案 2 :(得分:0)
我想补充一点。正如我之前提到的,WSO2 APIManager支持uri-templates。只有api-publisher app UI不允许添加uri-templates。
从Publisher UI创建API时,必须将资源映射指定为/ *或有效的url-mapping。然后,当创建synapse api时,您必须将该xml文件更改为uri-template,然后将/ *更改为uri-template模式。
希望以上将帮助您解决问题。
感谢;