2 回答

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ì)。
添加回答
舉報(bào)