第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

當(dāng)您有多個(gè)方法調(diào)用但請(qǐng)求主體不同時(shí),DTO 模式是什么?

當(dāng)您有多個(gè)方法調(diào)用但請(qǐng)求主體不同時(shí),DTO 模式是什么?

Qyouu 2021-10-13 16:17:56
有人告訴我,在構(gòu)建 RestFul API 時(shí),請(qǐng)使用名詞而不是動(dòng)詞。我還被告知每個(gè) DTO 都有自己的控制器。在“編輯屬性”和“添加屬性”方法需要兩個(gè)不同的請(qǐng)求主體的情況下,我的 DTO 是什么樣的?@RestController@RequestMapping(value = "/property")public class PropertyController{    @RequestMapping(method = RequestMethod.GET)    //get properties method definition goes here    @RequestMapping(method = RequestMethod.PUT)    // edit property method definition goes here    @RequestMapping(method = RequestMethod.POST)    // add property method definition goes here}編輯屬性要求:{    "userloginid": "3333",    "propertyname": "My edited property name",    "propertyid": "1"}添加屬性需要:{    "userloginid": "3333",    "propertyname": "My new property name"}
查看完整描述

3 回答

?
慕容708150

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)處理輸出和輸入情況。


查看完整回答
反對(duì) 回復(fù) 2021-10-13
?
牛魔王的故事

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í)例。


查看完整回答
反對(duì) 回復(fù) 2021-10-13
  • 3 回答
  • 0 關(guān)注
  • 181 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)