これは非常に基本的な質問のように思われるため、以前に尋ねられた場合は申し訳ありません。有用なリソースの方向を教えてください。
したがって、データを取得するための RESTful サービスがあります。ただし、RESTful サービスでは、取得を行うために一定量のデータが必要です。このデータは、「ユーザー コンテキスト」データとして大まかに要約できます。ユーザーに関する情報 (呼び出し元のアプリケーションによって保存されているか、以前に別のアプリケーションから取得されたか) は、サービスが取得を実行するために使用する必要があります。
REST は意味的に機能するため、何かを取得するための正しい動詞 (HTTP メソッド) は GET 要求です。私が見たほとんどの GET リクエストの例は、少量のデータしか使用せず、データは URL で渡されます。しかし、検索するために大量のデータを必要とするサービスの領域に入ると、そのすべての情報を URL に入れるのは間違っているように思えます。それだけでなく、特定のコンポーネント (多くの場合 255 文字程度、IIRC) によって適用される URL の長さには既知の制限があります。
利用可能なオプションは次のようです。
- POST を使用して、要求本文でデータを送信します。ただし、サービスに何も更新することを要求しておらず、取得のみを要求しているため、これはセマンティックではありません。
- 情報の大部分 (私の場合は「ユーザー コンテキスト」) を HTTP ヘッダーに入れます。ただし、ヘッダーはデータではなくヘッダーに使用する必要があるため、これは「間違っていると感じます」。
- 複数の URL でデータを送信する複数の要求を行います。ただし、サービスはリクエストを結び付けるために何らかの状態を維持する必要があるため、これはステートレスの目標を破るようです。
- データをデータベースに書き込み、サービスにキーを渡してそこからデータを取得します。ただし、これにより、要求が自己完結型ではなくなり、パフォーマンスのボトルネックも発生します。
別のオプションはありますか?ここでのベストプラクティスは何ですか?