0

私がプログラミングした RESTful API にパラメーターを渡すことを許可する最善の方法について、いくつか質問があります。

たとえば、ユーザーに関する情報を取得したい場合: メソッド GET を使用した API 呼び出しは/api/users/
次のようになります: ID を URL で渡す/api/users/5か、実際の G​​ET データとして渡すか/api/users/?id=5

私が読んで自分自身で結論付けたことから、より直感的で非常にきれいに見えるため、オプション1(URLにパラメーターを渡す)を選択する傾向があります。

ただし、そのオプションは、より複雑なクエリでは困難です。例: 年齢、最終ログイン日、またはネストされたクエリでユーザーを取得します (ユーザー 5 からすべての投稿を取得します)。これらのユースケースでは、簡単に識別できるキーと値のペアが含まれているため、データをリクエストパラメーターとして渡す方がはるかに便利です ( /api/users/?age=20)

私はあなたの意見に興味があります:
ここに行くにはどちらがより良い方法で、その理由は何ですか?
オプション 2 を好む場合: パラメータは理想的にどのように構成する必要がありますか?

4

2 に答える 2

0

REST の場合、クエリ文字列を含む URI 全体がリソースのアトミック識別子であることに注意してください。URI が常に同じリソースを識別し、クライアントによって構築されるのではなく、サービスによって提供される限り、良くも悪くもありません。

その意味で、/api/users/5は多かれ少なかれ RESTful ではありません/api/users?id=5が、それらは異なるものを参照しています。URI セマンティクスを考慮すると、パラメーターを使用してリソースのコレクションをクエリすると/api/users/5、単一のユーザー リソースが/api/users?id=5識別され、id でフィルター処理されたユーザーのコレクションが単一の要素の結果で識別されます。

于 2013-11-04T11:13:12.290 に答える