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

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

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

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

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

2 回答

?
MM們

TA貢獻1886條經驗 獲得超2個贊

你好,Restful API是一種設計風格,并不是強制的標準
我們可以對比一下傳統(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
關于Restful API的幾點說法
1、用URL描述資源
2、使用HTTP方法描述行為,使用HTTP狀態(tài)碼來表示不同的結果
3、使用json交互數(shù)據(jù)
4、RESTful只是一種風格,并不是強制的標準
官方也有一個模型:
Level 0 :使用Http作為傳輸方式
Level 1 :引入資源概念,每個資源都有對應的URL
Level 2 :使用HTTP方法進行不同的操作,使用HTTP狀態(tài)碼來表示不同的結果
Level 3 :使用超媒體,在資源的表達中包含了鏈接信息
類似SpringMVC中開發(fā)Restful API,一個查詢請求:

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

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


查看完整回答
反對 回復 2018-07-22
?
呼喚遠方

TA貢獻1856條經驗 獲得超11個贊

在執(zhí)行crud之前你肯定要在數(shù)據(jù)庫里面執(zhí)行一次查詢返回,確定該實體是否已經存在,這是一次查詢,如果不存在直接返回錯誤信息,如果GET返回該實體,如果是put,首先驗證你傳過來的data是不是符合格式的,如果驗證通過你就用你驗證后的數(shù)據(jù)來更新改實體,然后對改實體進行save操作,成功存進數(shù)據(jù)庫,返回改更新后的實體,不需要再次查詢,所以去掉第一次的驗證操作需要查詢數(shù)據(jù)庫 后面只需要操作一次數(shù)據(jù)庫

查看完整回答
反對 回復 2018-07-22
  • 2 回答
  • 0 關注
  • 389 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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