3 回答

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超4個(gè)贊
/users/{loginid}/properties/{propertyid} - 請(qǐng)考慮這個(gè)端點(diǎn),因?yàn)樗?RESTful
對(duì)于 PUT 更新,您可以考慮上面的端點(diǎn),userloginid并propertyid從路徑變量中獲取和。
在 PUT 請(qǐng)求中,PUT /users/3333/properties/1我將發(fā)送以下請(qǐng)求正文:
{
"propertyname": "My edited property name"
}
對(duì)于創(chuàng)建新屬性的 POST 請(qǐng)求,我會(huì)考慮/users/{loginid}/properties/使用相同的請(qǐng)求正文結(jié)構(gòu)向此 URL 發(fā)送請(qǐng)求:
{
"propertyname": "My new property name"
}
正如您所看到的,我沒(méi)有在 POST 請(qǐng)求中發(fā)送任何 ID,因?yàn)榇鎯?chǔ)對(duì)象的 ID 生成應(yīng)該發(fā)生在 DAO 中。
客戶端將在響應(yīng)正文中收到創(chuàng)建/更新屬性的 ID:
{
"propertyname": "My updated/created property name",
"propertyid": "1"
}
因此,從上面的示例中,我將創(chuàng)建兩個(gè) DTO 來(lái)處理輸出和輸入情況。

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超3個(gè)贊
您應(yīng)該使用這三個(gè)屬性(userloginid、propertyname、propertyid)創(chuàng)建相同的 DTO 。但是您必須考慮到propertyid可以為null。然后在發(fā)送請(qǐng)求參數(shù)時(shí),如果沒(méi)有發(fā)送propertyid,解析器會(huì)創(chuàng)建一個(gè)propertyid=null的DTO實(shí)例;否則解析器將創(chuàng)建一個(gè)帶有propertyid=value_passed_in 參數(shù)的 DTO 實(shí)例。
添加回答
舉報(bào)