19

QueryParam と PathParam の使用方法の違いは何ですか?

両方を使用してデータをサービスに渡すことができることを理解しています。PathParam は前のデータですか? URL 内の QueryParam は、? の後の名前値データです。しかし、私はこれらがどのように正確に使用されているのだろうか.

4

3 に答える 3

55

@QueryParamURL のクエリ文字列 (? の後の部分) のキーと値のペアにアクセスするために使用されます。たとえば urlhttp://example.com?q=searchtermでは、 を使用@QueryParam("q")して の値を取得できますq

@PathParamURL の一部をパラメーターとして照合するために使用されます。たとえば、フォームの URLでは、 を使用して本の ID を取得http://example.com/books/{bookid}できます。@PathParam("bookid")

JAX-RS で使用される例については、このページを参照してください。

于 2012-05-02T14:45:00.390 に答える
5

「実際には」非常に多くの異なる URL スキームが使用されているため、実際にはこの質問に対する正しい答えはおそらく 1 つではありません。ただし、REST URL 処理の観点から見ると便利です。REST (REpresentational State Transfer) の考え方は、アクセスを提供したいすべてのリソースを一意に識別できるようにすることです。一般的な REST スキームでは、URL のパス部分は N 空間の座標のセット (つまり、x、y、z => //myApp/x/y/z) と考えることができ、クエリ パラメータは次のとおりです。さらなる指定子。これらの追加の指定子は、一致するリソースのリストを返すために、不完全なパス指定の検索基準として使用できます。

REST URL のその他の例については、次の質問を参照してください。

編集: @marcokには優れた技術的な回答がありますが、更新されたコメントが公開されているため、どちらをいつ選択するかにより関心があるようです. 一般に、「純粋な」RESTful API を作成する場合、パスの一部であるすべてのものは、ID によってリソースを一意に識別する必要があります。多くの場合、リソースを一意に識別するために、URL がパスの一部として ID 値で終わることがあります。

ただし、API が属性 (おそらく ID を除く) で検索/フィルター処理する機能を直接公開している場合は、それをクエリ パラメーターとしてエンコードする可能性が高くなります。

これらは単なる例であり、何が優れた API を必要とするか、より具体的には API が純粋に RESTful である必要があるかについては、さまざまな意見があります。

于 2013-04-23T22:06:00.093 に答える