私はいくつかのタイプのユーザーのためにREST APIを整理しようとしていますが、どのようにリソースを互いに投資するべきか分かりません。たとえば、管理者は従業員リスト(アイテムの作成、編集、削除)で操作できます。また、管理者は各従業員の職場のリストを操作できます。そのid
とリソースは、その後、私は404: Not found
を返す必要が存在するが、どのようなGET: /employees/{id}/workplaces/{id}
についていない場合、私は知っているRESTfulな概念:階層的なリソースを整理する
GET: /employees
GET: /employees/{id}
POST: /employees
PUT: /employees/{id}
DELETE: /employees/{id}
GET: /employees/{id}/workplaces
GET: /employees/{id}/workplaces/{id}
POST: /employees/{id}/workplaces
PUT: /employees/{id}/workplaces/{id}
DELETE: /employees/{id}/workplaces/{id}
:私は、APIのルートのようなあるべきだと思いますか?そのid
の従業員または職場が存在しない場合、どちらの場合でも404: Not found
を返さなければなりませんか?あるいは、このタスクのための他の解決策が存在するのでしょうか?
別の問題は、異なるアクセス権を持つユーザーがリソースへのアクセスが異なることです。たとえば、部長は部署の従業員のリストを取得できますが、他の部署のリストは取得できません。私は、次のAPIのパスを提案する:
GET: /departments/my/employees
GET: /departments/my/employees/{id}
あなたが上見ることができるように、私は部門のid
が許可トークンから取らなければならないことを意味するであろうキーワードmy
、上id
を交換することを提案します。より多くの権限を持っていると誰が部門はこのような何かを行うことができます一覧表示することができ、他のユーザー:
GET: /departments/{id}/employees
GET: /departments/{id}/employees/{id}
は、これはRESTサービスを構築するための真の方法ですか?