2

我正在尝试找出最好/性能最好/最容易维护的版本,以处理restlet中的许多不同的URL。

例如,如果我想要一个 Item 资源,有没有比这更好的方法呢?

router.attach("/items", ItemResource.class);
router.attach("/item/{itemid}", ItemResource.class);
router.attach("/items/list", ItemResource.ItemListResource.class);
router.attach("/items/weapons", ItemResource.WeaponListResource.class);
router.attach("/items/armours", ItemResource.ArmourListResource.class);
...

(我尝试使用 /items/{itemid},但随后 /items/weapons 等无法访问。)

ItemResource 然后有 @Get 用于获取单个项目,但也有 @Put 用于在仅使用 /items 时保存项目。这里感觉有点不对劲......在这种情况下,有没有更好的方法来获取/插入/更新/列出项目?

此外,这个 router.attach 列表很长,大约有 100 项。由于这必须在每个请求上运行,它可能会相当慢。我知道我可以将多个路由器连接在一起,但我找不到有关如何很好地做到这一点的文档。链接路由器并保持可维护性的最佳方法是什么?

4

1 回答 1

1

只需将

router.attach("/item/{itemid}", ItemResource.class);

在路由的最低部分,因为它会捕获所有路径参数,所以在它匹配所有内容之前,首先路由输入的路径。这应该根据我的经验解决它。

于 2015-01-13T20:45:55.937 回答