9
5
仲間のチームメイトと一緒にRESTを読んでいます。RoRアプリケーションを作成し、その機能の一部を世界に公開します。
このチームでの私の仕事は、ジャーナルレポートを公開するリソースを作成することです。 電話した場合
サービスからすべてのjournalreportsを取得する必要があります。 それは魅力のように機能しますが、ジャーナルレポートの範囲を公開するリソースを適切に作成する方法については混乱しています。 作るべきか
または、?range =干渉のためにRESTについて話すとき、これは違法ですか?
RESTリソースにいくつかのパラメーターを与える最も適切な方法は何ですか?
2 Answer
15
特に、あなたの場合のような検索リソース(一連のジャーナルのクエリ)の場合、パラメーターは完全に問題ありません。
I https://stackoverflow.com/questions/4024271/rest-api-best-practices-where-to-put-parameters/4026505#4026505 [最近回答]同様の質問(パスvs. パラメータ)
6
RESTは、クエリパラメーターを「違法」にすることは一切ありません。 これは、主に表現を交換してアプリケーションを駆動することに関するアーキテクチャスタイルです。 URIが不透明であることを考慮すると、たとえばRESTに関する限り、「http://example.com/page/1」と「http:// example /?page = 1」の間に実質的な違いはありません(最終的に送信される表現に依存しますが、選択またはURIスタイルは実装の詳細になる傾向があります)。
重要なのは、クライアントがレポートのURIをどのように知るかです。 HTMLは、フォームとクエリパラメーターでこれを非常にうまく行うことができます。 あなたのサービスがブラウザの消費のためであろうと、他のエージェントであろうと、本当に関係ありません、あなたは同じ原則を使うことができます。 より柔軟にしたい場合、またはトップページの明示的なリンクを使用する場合は、HTMLフォーム(またはクライアントがブラウザーでない場合は同等)を使用できます。 (範囲をより動的にしたい場合は、範囲を「from」と「to」などの2つのパラメーターに分割する方が簡単な場合があります。)