13

レストジーとは?RESTEasy と JAX-RS の違いは何ですか? @PathParamとはどう違い@QueryParamますか?

4

4 に答える 4

22

そのホームページによるとRESTEasy は

... JAX-RS仕様の完全に認定された移植可能な実装。

したがって、JAX-RS は Java で REST API を実装するためのライブラリーがどのように見えるべきかの仕様であり、RESTEasy はその仕様の実装の 1 つです。

これは事実上、JAX-RS に関するドキュメントは RESTEasy にも 1 対 1 で適用する必要があることを意味します。

于 2012-09-18T07:10:51.123 に答える
8

クエリ パラメータは、リクエスト URI クエリ パラメータから抽出され、メソッド パラメータの引数で javax.ws.rs.QueryParam アノテーションを使用して指定されます。

例:

@Path("smooth")
@GET
public Response smooth(
    @DefaultValue("2") @QueryParam("step") int step,
    @QueryParam("minm") boolean hasMin,
    @QueryParam("test") String test
    ) { ... }

URL: http://domain:port/context/XXX/smooth?step=1&minm=true&test=value

URIパス パラメータはリクエスト URI から抽出され、パラメータ名は @Path クラス レベル アノテーションで指定された URI パス テンプレート変数名に対応します。URI パラメータは、メソッド パラメータの引数で javax.ws.rs.PathParam アノテーションを使用して指定されます。

例:

@Path("/{userName}")
public class MyResourceBean {
...
@GET
public String printUserName(@PathParam("userName") String userId) {
    ...
}
}


 URL: http://domain:port/context/XXX/naveen

ここで、naveen は userName(Path パラメータ) として取ります

于 2012-09-18T11:03:35.440 に答える
7

JAX-RS は、パッケージに属する実際の実装を持たないインターフェイスとクラスのセットですjavax.ws.rs.*(これらは Oracle による Java SE 6 の一部です)。

RESTEasyや、JerseyApache CXFなどは、その JAX-RS クラスのオープン ソース実装です。

コンパイル時には、JAX-RS のみが必要です。実行時には、その実装の 1 つだけが必要です。

于 2012-09-18T10:19:45.127 に答える
1

また、JAX-RSはサーバー側の仕様にすぎず、RESTEasyはそれを拡張して、RESTEasyJAX-RSクライアントフレームワークを介してJAX-RSをクライアント側に提供していることにも注意してください。

paramに関する情報 、@ PathParamと@QueryParamの違いは何ですか、 ここでparamsに関するいくつかの優れた点、@QueryParamと@PathParamを いつ使用するか-Garethの回答

于 2012-09-18T11:48:35.320 に答える