我想爲幾個用戶類型組織REST API,但我不明白資源應該如何投入彼此。例如,管理員可以使用員工列表進行操作(創建,編輯和刪除項目)。此外,管理員可以操作每個員工的工作場所清單。我認爲,API路線應如: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}
我知道如果與id
資源不存在,那麼我應該返回404: Not found
,但對於GET: /employees/{id}/workplaces/{id}
?當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服務的真實方法嗎?