我正在設計一個寧靜的Web服務來創建和讀取從應用程序製作的報告。在創建報告時,可能會添加一些隱私敏感信息,如名稱,電話號碼,郵件等。創建報告後,通過同一Web服務將其公開顯示。Restful Web服務,部分讀取權限
POST /report
{
"name":"test",
"email":"[email protected]",
"report_contents":....
}
返回200 OK用:
{
"id":1,
"report_contents":....
}
和一個方法來獲得上述報告: GET /報告/ {REPORT_ID}
我有另一個應用程序與一個管理員可以管理通過以前的Web服務創建的報告。在這個應用程序中,我想顯示隱私敏感信息。它使用以下URL來獲取特定報告。
GET /report/{report_id}
返回200 OK:
{
"id":1,
"name":"test",
"email":"[email protected]",
"report_contents":....
}
現在有問題。這是完全相同的網址。這是可能的/傳統的,甚至是一個好主意,爲這兩個調用使用相同的Web服務,但有一些類型的CRUD管理,根據用戶的角色,部分信息不被顯示/阻止?或者做一個單獨的帶有限制的Web服務會更好嗎?
你說的話很有道理。我忘記提到的是我會用API密鑰或Oauth2來保護API。基於角色,我將返回他們允許看到的任何內容。 – Terabyte
定義要返回的模型時不會有問題嗎? – Terabyte
歧義在哪裏?REST客戶端必須能夠處理接收不同的表示。 – Joe