0

我正在用 Jersey 设计一个 REST JAX-RS API。

我想知道通过 ID 获取对象的最佳实践是什么。我是否需要将 ID 映射到一个Integer或一个String

解决方案1:

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

解决方案2:

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

我的意图是使用Long它,因为它使用Long...直接映射到我的数据库模型上。

4

1 回答 1

1

如果需要 a long,请将参数设为 a long

如果 JAX-RS 无法将客户端请求的路径参数映射到long,它将返回一个404 Not FoundHTTP 状态代码,这是一件好事。如果您允许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.

于 2013-08-23T17:39:54.870 回答