2017-04-09 86 views
0

我在一個網站上有這樣的模型:Organization,ClientCommentREST API一對多深層關係

Organization可以有許多Clients,一個Client屬於Organization,一個Client可以有許多Comments,一個Comment屬於一個Client

顯然,Client是不是一流的資源,所以我創造更新,並通過把它的Organization,如:

POST/organizations/:org_id/clients - 創建客戶端 PUT/organizations/:org_id/clients/:client_id - 更新客戶端, 等

但是,當我想將Comment添加到Client時,我的路線應該是什麼?

它應該是

POST/organizations/:org_id/clients/:client_id/comments

POST/clients/:client_id/comments

POST/comments

回答

0

在許多情況下REST接口模仿的數據結構。

由於您有屬於客戶端的評論,因此很可能您的內部數據表示形式是一張表,其中主鍵是註釋ID,外鍵是客戶端ID。它與屬於特定組織的客戶無關。因此

POST/clients/:client_id/comments 

如果以後你會想編輯註釋,這將是

PUT/clients/:client_id/comments/:comment_id 

從理論上講,你甚至可以移動CLIENT_ID是後參數的一部分,但在這種情況下,你會放棄正確的方式列出給定客戶的所有評論。