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

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

rest API在做修改操作時(shí),如何返回修改后的結(jié)果

rest API在做修改操作時(shí),如何返回修改后的結(jié)果

慕斯709654 2018-08-12 20:26:22
設(shè)計(jì)rest接口,對于修改(update,add,delete)操作,網(wǎng)上有說應(yīng)該將修改后的結(jié)果返回調(diào)用方,調(diào)用方就可以直接利用這個(gè)修改后的結(jié)果。那么這個(gè)返回結(jié)果是將修改后的整個(gè)實(shí)體(比如User)返回,還是返回一個(gè)主鍵id。問題1:①如果返回一個(gè)主鍵id。由于update和delete的id本來就是從調(diào)用端傳過來,因此不需要返回。而add時(shí)id是后臺(tái)生成的,所以需要返回給調(diào)用者。這樣的話,即使封裝了統(tǒng)一返回對象,感覺API的返回json還是不太統(tǒng)一。②如果返回實(shí)體。豈不是一個(gè)修改操作的api就要操作數(shù)據(jù)庫兩次(一次修改,一次查詢)請問各位大大都是如何設(shè)計(jì)rest API的呢?有沒有代碼分享一下?謝謝了!
查看完整描述

2 回答

?
不負(fù)相思意

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超10個(gè)贊

你好,Restful API是一種設(shè)計(jì)風(fēng)格,并不是強(qiáng)制的標(biāo)準(zhǔn)
我們可以對比一下傳統(tǒng)與其的寫法
傳統(tǒng)寫法:
查詢 /user/query?name=tom GET 
詳情 /user/getInfo?id=1 GET
創(chuàng)建 /user/create?name=tom GET
修改 /user/update?id=1&name=jerry POST
刪除 /user/delete?id=1 GET 
RESTful寫法
查詢 /user?name=tom GET 
詳情 /user/1 GET
創(chuàng)建 /user POST
修改 /user/1 PUT
刪除 /user/1 DELETE
關(guān)于Restful API的幾點(diǎn)說法
1、用URL描述資源
2、使用HTTP方法描述行為,使用HTTP狀態(tài)碼來表示不同的結(jié)果
3、使用json交互數(shù)據(jù)
4、RESTful只是一種風(fēng)格,并不是強(qiáng)制的標(biāo)準(zhǔn)
官方也有一個(gè)模型:
Level 0 :使用Http作為傳輸方式
Level 1 :引入資源概念,每個(gè)資源都有對應(yīng)的URL
Level 2 :使用HTTP方法進(jìn)行不同的操作,使用HTTP狀態(tài)碼來表示不同的結(jié)果
Level 3 :使用超媒體,在資源的表達(dá)中包含了鏈接信息
類似SpringMVC中開發(fā)Restful API,一個(gè)查詢請求:

——編寫針對RestfulAPI的測試用例
——使用注解聲明RestfulAPI
——在Restful API中傳遞參數(shù)

常用注解
——@RestController 標(biāo)明此Controller提供RestAPI
——@RequestMapping及其變體,映射http請求url到j(luò)ava方法
——@RequestParam映射請求參數(shù)到j(luò)ava方法的參數(shù)
——@PageableDefault指定分頁參數(shù)默認(rèn)值
而對于具體返回什么,或者獲取什么,更多的時(shí)候要根據(jù)業(yè)務(wù)的重點(diǎn)來設(shè)計(jì)。


查看完整回答
反對 回復(fù) 2018-08-12
  • 2 回答
  • 0 關(guān)注
  • 1393 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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