3 回答

TA貢獻1831條經驗 獲得超4個贊
/users/{loginid}/properties/{propertyid} - 請考慮這個端點,因為它更符合 RESTful
對于 PUT 更新,您可以考慮上面的端點,userloginid并propertyid從路徑變量中獲取和。
在 PUT 請求中,PUT /users/3333/properties/1我將發送以下請求正文:
{
"propertyname": "My edited property name"
}
對于創建新屬性的 POST 請求,我會考慮/users/{loginid}/properties/使用相同的請求正文結構向此 URL 發送請求:
{
"propertyname": "My new property name"
}
正如您所看到的,我沒有在 POST 請求中發送任何 ID,因為存儲對象的 ID 生成應該發生在 DAO 中。
客戶端將在響應正文中收到創建/更新屬性的 ID:
{
"propertyname": "My updated/created property name",
"propertyid": "1"
}
因此,從上面的示例中,我將創建兩個 DTO 來處理輸出和輸入情況。

TA貢獻1830條經驗 獲得超3個贊
您應該使用這三個屬性(userloginid、propertyname、propertyid)創建相同的 DTO 。但是您必須考慮到propertyid可以為null。然后在發送請求參數時,如果沒有發送propertyid,解析器會創建一個propertyid=null的DTO實例;否則解析器將創建一個帶有propertyid=value_passed_in 參數的 DTO 實例。
添加回答
舉報