2012-11-15 50 views
2

我試圖找出最佳/最高性能/最容易維護的版本,以處理restlet中的許多不同URL。Restlet路由

例如,如果我想要一個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); 
... 

(我試過具有/項目/ {}的itemid,但隨後/項目/武器等無法訪問。)

ItemResource然後有@Get用於提取單個項目,但也有@Put用於在使用/項目時保存項目。有些東西在這裏感覺有點不對......在這種情況下,有沒有更好的方法來獲取/插入/更新/列出項目?

另外,這個router.attach列表很長,100左右的項目。由於每次請求都必須執行此操作,因此可能會很慢。我知道我可以將多個路由器連接在一起 - 但我無法找到如何很好地完成此操作的文檔。連接路由器並保持其可維護性的最佳方式是什麼?

+0

我錯過了這個問題之前:http://stackoverflow.com/questions/5682226/restlet-routing-nightmare?rq=1 - 它回答/項目/我的問題的一部分... – user456137

回答

1

只要把

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

上的路由的最低部分,因爲它會捕捉所有的路徑參數,所以它匹配一切之前,先擊潰鍵入路徑。這應該根據我的經驗來修復它。