2016-12-05 6 views
1

私はいくつかのタイプのユーザーのために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サービスを構築するための真の方法ですか?

答えて

1

GET: /employees/{id}/workplaces/{id}?このIDの従業員または職場が存在しない場合は、両方とも404: Not foundを返さなければなりませんか?

はい。

GET: /departments/my/employees

あなたのコードは、実IDからmyを区別することができれば、これは、ビューのREST点から結構です。

関連する問題