簡體   English   中英

最佳實踐確定Restful API中傳遞的參數類型?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM