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

が必要な場合はlong、パラメータを a にしますlong

JAX-RS がクライアントから要求されたパス パラメータを にマップできない場合long、HTTP ステータス コードが返されますが、404 Not Foundこれは良いことです。を許可する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 に答える