2016-12-20 22 views
1

私はリソースを公開と非公開の応答があり、決定的な状況にある一部のユーザーだけが秘密応答にアクセスできます。RESTful APIで公開リソースと非公開リソースを管理する方法

ベストプラクティスは何ですか?

  1. 公開URLと公開URLの2つのURL:resource/{id}resource/{id}/private
  2. 同じURL、ユーザーごとに異なる応答:resource/{id}
  3. 同じURLと、パブリックとプライベートとで異なるパラメータ:resource/{id}?private=true
  4. その他?

答えて

1

あなたの用語は多少混乱しています。 1つのリソースがあり、複数のrepresentationがあります。リソースには、1つの標準的な場所(URL)が必要です。さまざまなユーザーが自分の認証レベルに基づいて異なる表現を得ることは、まったく問題ありません。

ユーザーがリソースの特定の表現を要求できるようにするには、いくつかのオプションがあります。カスタムMIMEタイプを使用している場合は、Acceptヘッダーが最適です。カスタムMIMEタイプを使用していない場合はクエリパラメータを使用することをお勧めしますが、アプリケーション全体で一貫して一貫性のあるものであることを確認してください。 ?private=trueを使用せず、代わりに?representation=publicのようなものを使用してください。これにより、後で表現を追加して同じパラメータを使用し、表現を指定する必要がある他のリソースと同じクエリパラメータを共有することができます。別のURLを使用しないでください。

0

IMO resourceのURLは1つにする必要があります。 HTTPで認証トークンを使用して、サーバーがprivate応答またはpublic応答で応答する必要があるかどうかを確認できます。また、一部のユーザーが不正なリソースを要求している場合は、4xxステータスを送信できます。

したがって、resource/{id}は良い選択のようです。

関連する問題