RESTについていくつかの研究を行ってきました。 Amazon S APIは、RESTインターフェースに主にhttpヘッダーを使用していることに気づきました。パラメーター。
私の質問はこれです:主にhttpヘッダーを使用してRESTインターフェイスを開発する必要がありますか、リクエストパラメータを使用する必要がありますか?
質問は主に定義されたパラメーターがリソース識別子(URI)の一部であるかどうかである場合、リクエストパラメーターを使用します。そうでない場合はHTTPカスタムヘッダーです。たとえば、ミュージックギャラリーでalbum
のIDを渡すことは、URIの一部である必要があります。
たとえば、/employee/id/45
(または/employee?id=45
、RESTに偏見はありませんagainstクエリ文字列パラメーターまたは forスラッシュで区切られたクリーンURI()は1つのリソースを識別します。これで、リクエストヘッダーを送信してコンテンツネゴシエーションを使用できますcontent-type: text/plain
またはcontent-type: image/jpg
情報または画像を取得します。この点で、リソースは同じと見なされ、ヘッダーはリソースの形式を定義するためにのみ使用されます。
一般的に、私はHTTPカスタムヘッダーの大ファンではありません。 これは通常、クライアントがサーバー実装の事前知識を持っていることを前提としています(自然なHTTP手段、つまりハイパーメディアを介しては発見できません)。常にREST anti-pattern
HTTPヘッダーは通常、HTTPの側面を定義します直交要求/応答のプロセスで達成されるものに。 Authorization
ヘッダー(実際には誤った呼び名で、認証であるはずです)は典型的な例です。