亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

rest API在做修改操作時,如何返回修改后的結果

rest API在做修改操作時,如何返回修改后的結果

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

2 回答

?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

你好,Restful API是一種設計風格,并不是強制的標準
我們可以對比一下傳統與其的寫法
傳統寫法:
查詢 /user/query?name=tom GET 
詳情 /user/getInfo?id=1 GET
創建 /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
創建 /user POST
修改 /user/1 PUT
刪除 /user/1 DELETE
關于Restful API的幾點說法
1、用URL描述資源
2、使用HTTP方法描述行為,使用HTTP狀態碼來表示不同的結果
3、使用json交互數據
4、RESTful只是一種風格,并不是強制的標準
官方也有一個模型:
Level 0 :使用Http作為傳輸方式
Level 1 :引入資源概念,每個資源都有對應的URL
Level 2 :使用HTTP方法進行不同的操作,使用HTTP狀態碼來表示不同的結果
Level 3 :使用超媒體,在資源的表達中包含了鏈接信息
類似SpringMVC中開發Restful API,一個查詢請求:

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

常用注解
——@RestController 標明此Controller提供RestAPI
——@RequestMapping及其變體,映射http請求url到java方法
——@RequestParam映射請求參數到java方法的參數
——@PageableDefault指定分頁參數默認值
而對于具體返回什么,或者獲取什么,更多的時候要根據業務的重點來設計。


查看完整回答
反對 回復 2018-08-12
  • 2 回答
  • 0 關注
  • 1390 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號