[英]Best practice determine passed parameter type in Restful API?
我正在用Java做我的第一個JSON RESTful API。
前端將是AngularJS。 對於Web服務,我正在使用Tomcat 7,JAX-RS,Jackson,Jersey等。
我想使API盡可能簡單。
例如,我會通過ID以及UUID查詢用戶。 所以我想使用/rest/users/{id}
和/rest/users/{uuid}
。 理想情況下,我希望后端找出哪個是哪個,而不是創建單獨的API分支。
由於它們全部來自JSON,因此我想我不能只是讓Java根據類型來確定它。 所以我想出了:
@GET
@Path("{id}")
@Produces(MediaType.APPLICATION_JSON)
public User getJSONUser(@PathParam("id") String id) {
User user;
if(id.contains("-")){
user = userDao.getUserByHandle(id);
}else{
user = userDao.getUserById(Long.parseLong(id));
}
return user;
}
我注意到,舉個例子,Facebook API到處都是這樣做。 例如/{user-id}/albums
和/{page-id}/albums
。
我應該注意一些技巧,這些技巧使檢測這些參數更加容易嗎? 還是FB對ID本身進行編碼? 即我已經在正確的軌道上了。 澤西島能夠根據MediaType找出呼叫非常酷。 我認為里面可能有同樣酷的事情來解決這個問題...
預先感謝彼得
我假設他們在ID本身中編碼一些東西。
從純粹的REST角度來看, /{user-id}/albums
和{page-id}/albums
是同一端點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.