WebサービスのQueryParamとpathParamの違いは何ですか?


ベストアンサー

こんにちは!

説明しましょう

QueryParam: –Restfulサービスでは、すべてがHttpプロトコルに基づいています。

したがって、データを送信するときはいつでも、URLに追加するクエリパラメータを使用してそのデータを送信できます。

例:-

http://localhost:8081/SearchApp/book?name=java ここでQueryParamは名前です。値はjavaです。

したがって、ここではQueryParamsはオプションであり、クエリパラメータを送信する必要はありません。

したがって、QueryParamを追加しない場合、404エラーは発生しません。値がnullになるため、nullPointer例外が発生する可能性があります。

@GET

@Path("/book")

List getBooks(@QueryParam("name")String bookName){

}

PathParam: -したがって、データを必須として送信する場合は、値をセグメントとしてURLに直接追加できます。パスパラメータを追加しないと、404エラーが発生します。

例:- http://localhost:8081/SearchApp/book/java (したがって、ここでは値javaがURLセグメントとして直接追加されます)

インサービス

次のように取得できます:-

@GET

@Path("/book/{bookname}")

List getBooks(@PathParam("bookname")String bookName){

}

回答

一般的なRESTスキームでは、URLのパス部分はエンティティクラス階層(/ Tables / Dining)を表します。一方、クエリパラメータは、より具体的な結果を得るためにクラスのインスタンスを見つけるための属性用に予約できます。たとえば、URLの下から茶色のダイニングテーブルのリストを取得したい場合

// products / Tables / diningtable?color = brown

@PathParamを使用してパーツを照合しますパラメータとしてのURLの。たとえば、http://example.com/tables/{diningtable}の形式のURLでは、@ PathParam( “diningtable”)を使用してダイニングテーブルエンティティクラスにアクセスできます。

QueryParamはアクセスに使用されますURLのクエリ文字列(?の後の部分)のキーと値のペア。たとえば、URL http://example.com/テーブル/ダイニングテーブルにありますか? Color = brown、@ QueryParam( “color”)を使用して、茶色の色の値を取得できます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です