Restlet中的资源发现

时间:2014-06-06 15:15:39

标签: java rest restlet restlet-2.0

我在项目中使用spring和restlet。

我正在尝试实现自动资源发现。如果用户发出这样的get请求,则响应应该包含子资源的链接,如下所示。



要求:

获取

http://<host>:<port>/root/

回应:

http://<host>:<port>/root/v1

http://<host>:<port>/root/v2

http://<host>:<port>/root/v3



请求:

获取

http://<host>:<port>/root/v1

响应:

http://<host>:<port>/root/v1/resource1

http://<host>:<port>/root/v1/resource2

http://<host>:<port>/root/v1/resource3

等等。

我研究了restlet java文档,但无法找到自动资源发现的任何功能。

我现在能想到的其他选项是将每个级别创建为端点并返回子资源的链接,但我不确定这是否是正确的方法。

restlet中是否有这样的功能?如果没有,可以在restlet中使用其他选项来实现这样的功能?

感谢。

1 个答案:

答案 0 :(得分:0)

您可以查看org.restlet.ext.wadl或org.restlet.ext.apispark(仅在主分支中)扩展的代码。 我们的想法是从Application“getInboundRoot”Restlet开始。以递归的方式,检测它是否是一个过滤器(在这种情况下,分析过滤器#getnext()“restlet”,如果它是一个路由器,循环路由器#getRoutes并分析目标Restlet。如果是“ Finder“实例这实际上意味着附加了一个ServerResource。如果没有,这是一个symple处理所有请求的纯Restlet。