リソースに表示されるデータの制限をモデル化するにはどうすればよいですか?異なる人が同じリソースにアクセスしていますが、役割が異なるため、すべての情報を表示することはできません。リソースに表示されるデータの制限をモデル化するにはどうすればよいですか?
場合、私が働いている:情報にアクセス制限なし
ソリューション:たとえば、しかし
GET /User -> [{name:"John", phoneNumber: "322-333"}]
GET /User/{id} -> {name:"John", phoneNumber: "322-333"}
:誰もがそれにアクセスすることができれば
User:
name
phoneNumber
をこれは、モデルのは簡単だろう私は2つの役割、管理者とユーザーを持っています。 phoneNumberは、管理者でもあるユーザーだけが見ることができます。認可トークンは、クッキー、ヘッダーなどで送信されます。サーバーは、リクエスターが持つ役割を知ります。どのようにこれを処理するためのAPIを設計するでしょうか?
1)素朴な解決策はそれをフィルタリングして、あなたはすなわち、それへのアクセスを許可アレント場合は未設定フィールドを残して次のようになります。私は、アイデアのカップルを持っています。
If user: GET /User -> [{name:"John"}]
If admin: GET /User -> [{name:"John", phoneNumber: "322-333"}]
2)は、URLの役割埋め込む:
If user is wanted as a User: GET /User/User -> [{name:"John"}]
If user is wanted as an Admin: GET /Admin/User -> [{name:"John", phoneNumber: "322-333"}]
3)の各フィールドの可能なサブセットのための新しいリソースを定義します。
If user is wanted as a User: GET /PublicUserInfo -> [{name:"John"}]
If user is wanted as an Admin: GET /FullUserInfo -> [{name:"John", phoneNumber: "322-333"}]
異なるアプローチが良いでしょうか?
誰かが実際に解決した解決策を経験していますか?認証されたユーザーに基づいて