我正在構建一個RESTful API,將我的應用程序用戶公開爲users
。RESTful API:建模可訪問其他資源的資源集合
我的應用程序還具有「文檔」功能,每個用戶都可以訪問特定的文檔。我正在考慮通過users/{user-id}/documents
公開可訪問文檔來自然地表達這一點。
但是,從可用性的角度來看,重要的是我的客戶能夠獲取(並修改)有權訪問特定文檔的用戶。正因爲如此,我正在考慮將這種表示「逆轉」到documents/{document-id}/users
。
這些(特別是後者)是否看起來像正確的方式來模擬這種關係?如果我確實採用這樣的解決方案,我該如何建模'授予對文檔的訪問權限'?
我傾向於將預先存在的用戶(大概是通過獲取users
獲取)轉換爲documents/{document-id}/users/{user-id}
。然而,這似乎並不令人滿意,因爲我將執行「更新」操作,而不是實際更新資源,而是將其插入集合中。這在語義方面尤其成問題,因爲我期望我的服務器端最終不會考慮完整的已發送用戶表示,而只是將id與預先存在的用戶的id進行交叉引用,以創建關聯。
在另一方面,我不能發佈到documents/{document-id}/users
,因爲我不是在創造一個新的資源的目標 - 我特別不想要一個被創建。
我做錯了嗎?
的可能的複製[如何處理在一個RESTful API許多一對多的關係?] (http://stackoverflow.com/questions/6324547/how-to-handle-many-to-many-relationships-in-a-restful-api)(儘管我仍然會對PUT/POST語義如何感興趣進入這個數字) – biril