私はハイパーメディア API、はい、RESTful API をハイパーテキスト制約付きで設計しています。
システムの各ユーザーは、独自の資格情報を使用してシステムにアクセスするため、処理するすべての要求が認証および承認されます。通常、各ユーザーは特定の資格情報を持っているため、コレクションごとに異なる権限 (なし、読み取り、読み取り/書き込みなど) を持つことができます。
クライアントに、それが開始する 1 つの URI を用意する必要があります。これはおそらく、atom サービス ドキュメントか、atom コレクションの階層 (ドラフトの atom 階層拡張) になります。
私の質問は、基本的に、ユーザーは同じ URI に対して異なる表現を表示する必要がありますか?それとも、ユーザーはアクセス許可に基づいて異なる URI にリダイレクトされるべきですか?
例: ユーザー A とユーザー B は、システム内で異なる権限を持っています。同じ開始 URI に、異なる資格情報でログインします。正常な応答は、次の 2 つのいずれかになります。
- 200 OK、ユーザー A は同じ URI でユーザー B とは異なるものを見ます
- 302 (または他のリダイレクト) 各ユーザーを /endpoint/userA (ユーザーが所有) などに
リソースはクライアントによってのみキャッシュされ、仲介者によってはキャッシュされないため、キャッシュ可能性のトレードオフはもちろん最小限ですが、可視性にもトレードオフがあります (URI には (認証された) ユーザー ID が含まれます)。最後に、ユーザー A (またはスーパー ユーザー) がユーザー B が見ているものを見ることができるようにする将来の可能性があります。
Twitter や Facebook が何をしているのかを尋ねているのではなく、REST の実践者がこれについて何と言っているかに興味があります。