我正在使用Jersey设计REST JAX-RS API。
我想知道通过ID获取对象的最佳做法是什么。
我是否需要在Integer
或String
解决方案1:
/books/{id}
getById(@PathParam("id") Long id)
解决方案2:
/books/{id}
getById(@PathParam("id") String id)
我的意图是使用Long
,因为它使用Long
直接映射到我的数据库模型...
答案 0 :(得分:1)
如果您需要long
,请将参数设为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
。 /books/foo
的请求将因404 Not Found
而失败。