【发布时间】:2016-11-22 12:48:45
【问题描述】:
我正在使用 Restlet 开发一个 REST API。
到目前为止,一切正常。但是,我现在遇到了将 URL 映射到 ServerResource 的 Router 的问题。
我有以下场景:
- GET
/car返回所有汽车的列表 - GET
/car/{id}返回 id 为 1 的汽车的详细信息 - GET
/car/advancedsearch?param1=test应该使用一些参数对所有汽车进行搜索
前两个调用没有任何问题。但是,如果我尝试拨打第三个电话,Restlet Router 会以某种方式将其映射到第二个电话。如何让 Restlet 改用第三种情况?
我的映射定义如下:
router.attach("/car", CarListResource.class);
router.attach("/car/{id}", CarResource.class);
router.attach("/car/advancedsearch", CarSearchResource.class);
CarSearchResource 从未被调用,而是请求以CarResource 结束。
路由器的默认匹配模式设置为Template.MODE_EQUALS,所以不会导致它。
有没有人有任何进一步的建议我可以如何解决它?
请不要建议将/car 与参数一起使用,因为在该级别上已经有另一种搜索方式。另外,我无法控制 API 结构,所以它必须保持原样。
【问题讨论】:
标签: java rest uri restlet url-pattern