2

是否可以在 WSO2 API Manager 1.4.0 版附带的 API Publisher 中使用URI 模板注册端点?例如,我想注册一个端点,例如:

/jobs/{jobid}/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”。

提前致谢。

4

3 回答 3

2

这是因为 APIPublisher 应用在​​定义 API 资源时仅支持 URL-Mappings。

如果你想定义一个 uri 模板,而不是一个 url 映射,你可以通过手动更改 api xml 来实现。

但在此之前,请确保在创建 API 时,您已经使用有效的 url-mapping 定义了 API。因此,在您尝试使用的 API 中,首先请从 APIPublisher 编辑 API,以保持 API 资源的有效 url-mapping 模式,然后更改它的 xml 与您提到的 uri-template 模式匹配。

谢谢;

于 2013-09-25T02:22:31.457 回答
0

我想补充几点。正如我之前提到的,WSO2 APIManager 支持 uri-templates。只有 api-publisher 应用程序 UI 不允许添加 uri-templates。
从 Publisher UI 创建 API 时,您必须将资源映射指定为 /* 或有效的 url-mapping。然后在创建突触 api 时,您必须将该 xml 文件更改为 uri-template,然后将 /* 更改为 uri-template 模式。

希望以上内容能帮助您解决问题。

谢谢;

于 2013-09-26T10:02:45.493 回答
0

我们目前不支持 uri-template 模式。我们仅支持 url 映射。
甚至,如果您将后端 API 配置(即 api 配置文件)编辑为 url-mappings,它也不会起作用,因为我们会在请求到达中介引擎之前验证请求。

您可以使用 ESB RESTApi 作为后端服务端点。也就是说,在 wso2esb 中使用 uri-templates 定义 RESTAPI(在 ESB 中支持它),并将该 API 作为 wso2APIManager 中的服务端点,并使用 url-mappings 模式。

于 2013-09-25T20:33:25.143 回答