2016-04-12 32 views
1

我有URL路徑如何從REST URL獲取路徑變量?

/customer/7854/order/125 

如何獲得customerID7854orderID125? 目前我通過分割完整的字符串來處理這個問題,但我不喜歡它。

有替代品嗎?

+0

你用什麼來設置端點? Spring MVC? – christopher

+0

確實:Spring MVC。 – Dai

回答

4

如果你使用Spring REST,你可以使用@PathVariable( 「ID」)長ID。例如,對於多個參數:

@RequestMapping(value = "/ex/foos/{fooid}/bar/{barid}") 
@ResponseBody 
public String getPathValues 
    (@PathVariable long fooid, @PathVariable long barid) { 
    return "Get a specific Bar with id=" + barid + " from a Foo with id=" + fooid; 
} 
1

正如您在評論中所說的,您使用的是Spring MVC。

幸運的是,它提供了將URL參數映射到值的非常好的方法!

@RequestMapping(value = "/{bookmarkId}", method = RequestMethod.GET) 

正如你所看到的,在動作上,你可以指定bookmarkId。然後你指定參數..

Bookmark readBookmark(@PathVariable Long bookmarkId) 

現在你可以訪問bookmarkId就好像它是任何其他值。

編輯

所以整個事情,從例子中取,應該是這樣的:

@RequestMapping(value = "/{bookmarkId}", method = RequestMethod.GET) 
Bookmark readBookmark(@PathVariable String userId, @PathVariable Long bookmarkId) { 
    this.validateUser(userId); 
    return this.bookmarkRepository.findOne(bookmarkId); 
}