レストジーとは?RESTEasy と JAX-RS の違いは何ですか? @PathParam
とはどう違い@QueryParam
ますか?
4 に答える
そのホームページによるとRESTEasy は
... JAX-RS仕様の完全に認定された移植可能な実装。
したがって、JAX-RS は Java で REST API を実装するためのライブラリーがどのように見えるべきかの仕様であり、RESTEasy はその仕様の実装の 1 つです。
これは事実上、JAX-RS に関するドキュメントは RESTEasy にも 1 対 1 で適用する必要があることを意味します。
クエリ パラメータは、リクエスト 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 パラメータ) として取ります
JAX-RS は、パッケージに属する実際の実装を持たないインターフェイスとクラスのセットですjavax.ws.rs.*
(これらは Oracle による Java SE 6 の一部です)。
RESTEasyや、JerseyやApache CXFなどは、その JAX-RS クラスのオープン ソース実装です。
コンパイル時には、JAX-RS のみが必要です。実行時には、その実装の 1 つだけが必要です。
また、JAX-RSはサーバー側の仕様にすぎず、RESTEasyはそれを拡張して、RESTEasyJAX-RSクライアントフレームワークを介してJAX-RSをクライアント側に提供していることにも注意してください。
paramに関する情報 、@ PathParamと@QueryParamの違いは何ですか、 ここでparamsに関するいくつかの優れた点、@QueryParamと@PathParamを いつ使用するか-Garethの回答