管理者と標準ユーザーの2種類のユーザーがいるとします。ユーザー権限でRESTful APIでリソースをフィルタリングする最適な方法は何ですか?
私たちはpost
というリソースを持っています。 GETメソッドの場合は、管理者にすべての投稿を表示させたいが、標準ユーザーは投稿のみを表示するようにします。post.created_by={currentUserID}
。
使用
/api/post
と/api/mypost
:は今、私は3つのオプションがあります。私は簡単に返された結果を制御し、ユーザーのスコープに基づいて異なる権限を割り当てることができます。欠点は、私はコードとドキュメントを繰り返します。
両方とも
/api/post
を使用し、標準ユーザーの場合は?createdBy={id}
がない場合は要求を拒否します。/api/post
を両方とも使用しますが、認証方法によって動作が異なります。標準的なユーザーの場合、返されるリストは常にフィルターされます。/api/post/{id}
の場合、ユーザーに属していない投稿に対してHTTP 403が返されます。
どちらを選択すればよいですか?