2013-08-23 10 views
0

我正在用Jersey設計一個REST JAX-RS API。使用整數或字符串的REST API getById?

我想知道通過ID獲取對象的最佳做法是什麼。 我需要的ID地圖上的IntegerString

解決方案1:

/books/{id} 
getById(@PathParam("id") Long id) 

解決方案2:

/books/{id} 
getById(@PathParam("id") String id) 

我的目的是使用Long,因爲它直接映射到我的數據庫模型上,使用Long ...

回答

1

如果您需要long,請將參數設爲a long

如果JAX-RS無法將客戶端請求的路徑參數映射到long,它將返回一個404 Not Found HTTP狀態碼,這是一件好事。如果你允許String,你的代碼將不得不做這個檢查。讓JAX-RS進行檢查。

@GET 
@Path("/books/{id}") 
public Response getBook(@PathParam("id") long id) { 
    return Response.ok("book " + id).build(); 
} 

一種/books/123請求將返回book 123。 的請求將失敗,404 Not Found