精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何設(shè)計(jì)API接口,實(shí)現(xiàn)統(tǒng)一格式返回?

開發(fā) 后端
在移動(dòng)互聯(lián)網(wǎng),分布式、微服務(wù)盛行的今天,現(xiàn)在項(xiàng)目絕大部分都采用的微服務(wù)框架,前后端分離方式,(題外話:前后端的工作職責(zé)越來越明確,現(xiàn)在的前端都稱之為大前端,技術(shù)棧以及生態(tài)圈都已經(jīng)非常成熟;以前后端人員瞧不起前端人員,那現(xiàn)在后端人員要重新認(rèn)識(shí)一下前端,前端已經(jīng)很成體系了)。

前言

在移動(dòng)互聯(lián)網(wǎng),分布式、微服務(wù)盛行的今天,現(xiàn)在項(xiàng)目絕大部分都采用的微服務(wù)框架,前后端分離方式,(題外話:前后端的工作職責(zé)越來越明確,現(xiàn)在的前端都稱之為大前端,技術(shù)棧以及生態(tài)圈都已經(jīng)非常成熟;以前后端人員瞧不起前端人員,那現(xiàn)在后端人員要重新認(rèn)識(shí)一下前端,前端已經(jīng)很成體系了)。

一般系統(tǒng)的大致整體架構(gòu)圖如下:

如何設(shè)計(jì) API 接口,實(shí)現(xiàn)統(tǒng)一格式返回?

需要說明的是,有些小伙伴會(huì)回復(fù)說,這個(gè)架構(gòu)太簡(jiǎn)單了吧,太low了,什么網(wǎng)關(guān)啊,緩存啊,消息中間件啊,都沒有。因?yàn)槔项欉@篇主要介紹的是API接口,所以我們聚焦點(diǎn),其他的模塊小伙伴們自行去補(bǔ)充。

接口交互

前端和后端進(jìn)行交互,前端按照約定請(qǐng)求URL路徑,并傳入相關(guān)參數(shù),后端服務(wù)器接收請(qǐng)求,進(jìn)行業(yè)務(wù)處理,返回?cái)?shù)據(jù)給前端。

針對(duì)URL路徑的restful風(fēng)格,以及傳入?yún)?shù)的公共請(qǐng)求頭的要求(如:app_version,api_version,device等),老顧這里就不介紹了,小伙伴們可以自行去了解,也比較簡(jiǎn)單。

后端服務(wù)器如何實(shí)現(xiàn)把數(shù)據(jù)返回給前端?

返回格式

后端返回給前端我們一般用JSON體方式,定義如下:

{ #返回狀態(tài)碼 code:integer,  #返回信息描述 message:string, #返回值 data:object}

CODE狀態(tài)碼

code返回狀態(tài)碼,一般小伙伴們是在開發(fā)的時(shí)候需要什么,就添加什么。

如接口要返回用戶權(quán)限異常,我們加一個(gè)狀態(tài)碼為101吧,下一次又要加一個(gè)數(shù)據(jù)參數(shù)異常,就加一個(gè)102的狀態(tài)碼。這樣雖然能夠照常滿足業(yè)務(wù),但狀態(tài)碼太凌亂了

我們應(yīng)該可以參考HTTP請(qǐng)求返回的狀態(tài)碼

:下面是常見的HTTP狀態(tài)碼:

200 - 請(qǐng)求成功

301 - 資源(網(wǎng)頁等)被永久轉(zhuǎn)移到其它URL

404 - 請(qǐng)求的資源(網(wǎng)頁等)不存在

500 - 內(nèi)部服務(wù)器錯(cuò)誤

如何設(shè)計(jì) API 接口,實(shí)現(xiàn)統(tǒng)一格式返回?

我們可以參考這樣的設(shè)計(jì),這樣的好處就把錯(cuò)誤類型歸類到某個(gè)區(qū)間內(nèi),如果區(qū)間不夠,可以設(shè)計(jì)成4位數(shù)。

#1000~1999 區(qū)間表示參數(shù)錯(cuò)誤

#2000~2999 區(qū)間表示用戶錯(cuò)誤

#3000~3999 區(qū)間表示接口異常

這樣前端開發(fā)人員在得到返回值后,根據(jù)狀態(tài)碼就可以知道,大概什么錯(cuò)誤,再根據(jù)message相關(guān)的信息描述,可以快速定位。關(guān)注微信公眾號(hào) Java后端 獲取更多推送。

Message

這個(gè)字段相對(duì)理解比較簡(jiǎn)單,就是發(fā)生錯(cuò)誤時(shí),如何友好的進(jìn)行提示。一般的設(shè)計(jì)是和code狀態(tài)碼一起設(shè)計(jì),如

如何設(shè)計(jì) API 接口,實(shí)現(xiàn)統(tǒng)一格式返回?

再在枚舉中定義,狀態(tài)碼

如何設(shè)計(jì) API 接口,實(shí)現(xiàn)統(tǒng)一格式返回?

狀態(tài)碼和信息就會(huì)一一對(duì)應(yīng),比較好維護(hù)。

Data

返回?cái)?shù)據(jù)體,JSON格式,根據(jù)不同的業(yè)務(wù)又不同的JSON體。

我們要設(shè)計(jì)一個(gè)返回體類Result

如何設(shè)計(jì) API 接口,實(shí)現(xiàn)統(tǒng)一格式返回?

控制層Controller

我們會(huì)在controller層處理業(yè)務(wù)請(qǐng)求,并返回給前端,以order訂單為例

如何設(shè)計(jì) API 接口,實(shí)現(xiàn)統(tǒng)一格式返回?

我們看到在獲得order對(duì)象之后,我們是用的Result構(gòu)造方法進(jìn)行包裝賦值,然后進(jìn)行返回。小伙伴們有沒有發(fā)現(xiàn),構(gòu)造方法這樣的包裝是不是很麻煩,我們可以優(yōu)化一下。關(guān)注微信公眾號(hào) Java后端 獲取更多推送。

美觀美化

我們可以在Result類中,加入靜態(tài)方法,一看就懂

如何設(shè)計(jì) API 接口,實(shí)現(xiàn)統(tǒng)一格式返回?

那我們來改造一下Controller

如何設(shè)計(jì) API 接口,實(shí)現(xiàn)統(tǒng)一格式返回?

代碼是不是比較簡(jiǎn)潔了,也美觀了。

優(yōu)雅優(yōu)化

上面我們看到在Result類中增加了靜態(tài)方法,使得業(yè)務(wù)處理代碼簡(jiǎn)潔了。但小伙伴們有沒有發(fā)現(xiàn)這樣有幾個(gè)問題:

1、每個(gè)方法的返回都是Result封裝對(duì)象,沒有業(yè)務(wù)含義

2、在業(yè)務(wù)代碼中,成功的時(shí)候我們調(diào)用Result.success,異常錯(cuò)誤調(diào)用Result.failure。是不是很多余

3、上面的代碼,判斷id是否為,其實(shí)我們可以使用hibernate validate做校驗(yàn),沒有必要在方法體中做判斷。

我們最好的方式直接返回真實(shí)業(yè)務(wù)對(duì)象,最好不要改變之前的業(yè)務(wù)方式,如下圖

如何設(shè)計(jì) API 接口,實(shí)現(xiàn)統(tǒng)一格式返回?

這個(gè)和我們平時(shí)的代碼是一樣的,非常直觀,直接返回order對(duì)象,這樣是不是很完美。那實(shí)現(xiàn)方案是什么呢?

實(shí)現(xiàn)方案

小伙伴們?cè)趺慈?shí)現(xiàn)是不是有點(diǎn)思路,在這個(gè)過程中,我們需要做幾個(gè)事情

1、定義一個(gè)注解@ResponseResult,表示這個(gè)接口返回的值需要包裝一下

2、攔截請(qǐng)求,判斷此請(qǐng)求是否需要被@ResponseResult注解

3、核心步驟就是實(shí)現(xiàn)接口ResponseBodyAdvice和@ControllerAdvice,判斷是否需要包裝返回值,如果需要,就把Controller接口的返回值進(jìn)行重寫。

注解類

用來標(biāo)記方法的返回值,是否需要包裝

如何設(shè)計(jì) API 接口,實(shí)現(xiàn)統(tǒng)一格式返回?

攔截器

攔截請(qǐng)求,是否此請(qǐng)求返回的值需要包裝,其實(shí)就是運(yùn)行的時(shí)候,解析@ResponseResult注解

如何設(shè)計(jì) API 接口,實(shí)現(xiàn)統(tǒng)一格式返回?

此代碼核心思想,就是獲取此請(qǐng)求,是否需要返回值包裝,設(shè)置一個(gè)屬性標(biāo)記。

重寫返回體

如何設(shè)計(jì) API 接口,實(shí)現(xiàn)統(tǒng)一格式返回?

上面代碼就是判斷是否需要返回值包裝,如果需要就直接包裝。這里我們只處理了正常成功的包裝,如果方法體報(bào)異常怎么辦?處理異常也比較簡(jiǎn)單,只要判斷body是否為異常類。

如何設(shè)計(jì) API 接口,實(shí)現(xiàn)統(tǒng)一格式返回?

怎么做全局的異常處理,篇幅原因,老顧這里就不做介紹了,只要思路理清楚了,自行改造就行。

重寫Controller

如何設(shè)計(jì) API 接口,實(shí)現(xiàn)統(tǒng)一格式返回?


在控制器類上或者方法體上加上@ResponseResult注解,這樣就ok了,簡(jiǎn)單吧。到此返回的設(shè)計(jì)思路完成,是不是又簡(jiǎn)潔,又優(yōu)雅。 

責(zé)任編輯:龐桂玉 來源: 今日頭條
相關(guān)推薦

2021-10-11 19:34:03

全局格式項(xiàng)目

2022-08-31 08:19:04

接口returnCode代碼

2020-09-22 07:50:23

API接口業(yè)務(wù)

2023-11-28 14:32:04

2019-08-22 14:02:00

Spring BootRestful APIJava

2015-11-10 17:55:35

微軟

2024-08-01 09:10:03

2024-04-02 09:52:12

自定義返回類API開發(fā)

2025-06-10 08:05:00

錯(cuò)誤返回GoAPI

2021-07-16 08:58:35

SpringBoot

2016-10-28 09:37:48

微服務(wù)架構(gòu)服務(wù)

2019-02-25 10:18:43

工具代碼測(cè)試

2021-12-08 10:13:17

實(shí)踐設(shè)計(jì)風(fēng)格

2011-04-28 14:20:56

華碩上網(wǎng)本VX6

2019-02-27 08:02:43

網(wǎng)絡(luò)安全企業(yè)

2022-12-30 08:49:41

SpringBoot@Validated

2019-11-26 09:42:36

代碼開發(fā)API

2011-09-02 19:30:47

2011-07-19 14:38:06

jQuery Mobi

2020-02-04 18:42:53

充電接口歐盟蘋果
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

久久五月激情| 特黄特色欧美大片| 尤物在线观看一区| 国产一区二区免费在线观看| 免费观看日批视频| 在线中文字幕第一区| 精品国产乱码久久久久久1区2区| 日韩精品 欧美| 91社区在线观看播放| 国产jizzjizz一区二区| 国产www精品| 国产盗摄一区二区三区在线| 亚洲激情播播| 欧美一级理论性理论a| 欧美xxxxx在线视频| 成人av福利| 久久蜜桃一区二区| 97久久精品午夜一区二区| 在线观看日韩中文字幕| 中文字幕日韩欧美精品高清在线| 亚洲女人天堂成人av在线| 宇都宫紫苑在线播放| 国精产品一区一区三区四川| 亚洲一区二区三区视频在线播放| 亚洲一卡二卡三卡| 四虎精品成人免费网站| 国产精品综合av一区二区国产馆| 国产成人精品免费久久久久 | 亚洲精品免费视频| 日韩一区二区电影在线观看| 香港三日本三级少妇66| 国产成人午夜精品5599| 91精品国产综合久久久久久久久 | 国产精品日韩一区二区| 一级淫片免费看| 天堂va蜜桃一区二区三区 | 一二区成人影院电影网| 婷婷开心久久网| 波多野结衣激情| 在线播放日本| 欧美极品另类videosde| 蜜桃av噜噜一区二区三| 深爱激情五月婷婷| 成人激情免费网站| 国产精品视频500部| 国产偷人妻精品一区二区在线| 热久久免费视频| 日韩免费黄色av| 亚洲自拍一区在线观看| 久久aⅴ乱码一区二区三区| 欧美精品videosex极品1| 欧美日韩亚洲国产另类| 综合精品久久| 欧美高跟鞋交xxxxxhd| 麻豆精品一区二区三区视频| 伊人久久大香线蕉综合四虎小说| 日韩中文字幕在线免费观看| 日韩一级片在线免费观看| 欧美久久精品一级c片| 国产亚洲精品综合一区91| 亚洲成人网在线播放| 欧美猛男做受videos| 亚洲欧美日韩区| 一级黄色片网址| 日韩欧美一区二区三区免费看| 中文字幕亚洲色图| caoporn91| 极品中文字幕一区| 91精品国产亚洲| 亚洲天堂男人av| 青青草国产成人99久久| 91精品视频在线看| 国产成人精品一区二三区四区五区| 韩日av一区二区| av一区观看| 手机福利小视频在线播放| 国产亚洲精品免费| 亚洲精品乱码视频| 亚洲卡一卡二| 欧美日韩国产影院| 美女一区二区三区视频| **国产精品| 亚洲加勒比久久88色综合| 美女洗澡无遮挡| 欧美系列电影免费观看| 欧美精品一区二区免费| 女人十八岁毛片| 久久久久久亚洲精品杨幂换脸| 国产精品日韩av| 亚洲国产精品久久久久久6q | 欧美日韩精品免费| 亚洲精品鲁一鲁一区二区三区| 久久av国产紧身裤| 色噜噜亚洲精品中文字幕| 欧美精品乱码视频一二专区| 国产欧美综合一区二区三区| 国产精品第8页| 99久久亚洲精品日本无码| aa级大片欧美| 正在播放亚洲| 在线天堂中文资源最新版| 欧美日韩国产色站一区二区三区| 69亚洲乱人伦| 日韩国产一区二区| 午夜精品一区二区三区av| 亚洲一卡二卡在线观看| 9久草视频在线视频精品| 中文字幕一区二区三区有限公司 | 国内久久视频| 国产精品久久久久久久久久东京 | 日韩中文字幕高清| 国产成人日日夜夜| 亚洲欧美电影在线观看| yellow字幕网在线| 7777女厕盗摄久久久| 97超碰在线资源| 亚洲国产免费| 亚洲xxxxx电影| 国产高清在线| 狠狠久久亚洲欧美专区| 少妇性l交大片7724com| 日韩免费av| 日韩免费观看网站| 性插视频在线观看| 亚洲一区免费观看| 手机看片国产精品| 99国产精品一区二区| 国产成人久久久精品一区| 手机看片一区二区三区| 一区二区三区视频在线观看| 老司机久久精品| 欧美一区二区三| 欧日韩在线观看| 人妻偷人精品一区二区三区| 亚洲精品免费在线观看| 国产xxxxx在线观看| 成人线上播放| 欧美激情在线播放| 亚洲产国偷v产偷v自拍涩爱| 亚洲欧洲国产日韩| 污污视频网站在线| 99久久99久久精品国产片果冰| 国产精品免费观看在线| 国模吧精品人体gogo| 色丁香久综合在线久综合在线观看| 2一3sex性hd| 影音先锋亚洲电影| 国产精品福利视频| 欧美久久天堂| 亚洲精品一区av在线播放| 国产专区第一页| 久久亚洲私人国产精品va媚药| 欧美深夜福利视频| 亚洲成aⅴ人片久久青草影院| 2019中文在线观看| 黄色大片在线看| 在线亚洲精品福利网址导航| 欧美熟妇激情一区二区三区| 免费高清在线一区| 伊人婷婷久久| 久久久久久久久成人| 欧美xxxx综合视频| 蜜桃在线一区二区| 高跟丝袜欧美一区| 国产精品毛片一区二区| 日韩va欧美va亚洲va久久| 亚洲v欧美v另类v综合v日韩v| 欧美成人app| 久久亚洲电影天堂| 蜜桃av噜噜一区二区三区麻豆| 欧美日韩国产丝袜另类| 亚洲AV无码成人精品区明星换面| 免费在线观看一区二区三区| 懂色av粉嫩av蜜臀av| 日本一区影院| 国产91精品久久久久| 成人免费一区二区三区视频网站| 欧美日韩国产一级| 精品少妇久久久久久888优播| 97精品久久久午夜一区二区三区| 精品少妇无遮挡毛片| 先锋资源久久| 久久国产精品99久久久久久丝袜| 精品日韩视频| 欧美黑人狂野猛交老妇| 欧美69xxxxx| 欧美放荡的少妇| 国产稀缺真实呦乱在线| 久久精品视频一区二区三区| 亚洲激情在线看| 亚洲高清电影| 亚洲欧洲国产日韩精品| 99国产精品免费网站| 日本免费一区二区三区视频观看| 免费**毛片在线| 亚洲激情久久久| 国产毛片毛片毛片毛片| 午夜电影久久久| 久久嫩草捆绑紧缚| 99国产精品久| 国内av免费观看| 久久国产直播| 成人免费看片'免费看| 欧美美乳视频| 国产自产在线视频一区| 亚洲美女色播| 国产成人黄色av| 国产网红在线观看| 日韩在线观看免费全| 亚洲 另类 春色 国产| 91精品午夜视频| 99久久久无码国产精品免费蜜柚 | 亚洲精品天堂成人片av在线播放| 欧美激情在线精品一区二区三区| 99re视频在线播放| 国产精品亲子伦av一区二区三区| 91av福利视频| 2024最新电影在线免费观看| 国产亚洲日本欧美韩国| 香蕉av一区二区三区| 日韩欧美国产电影| 国产美女永久免费| 欧美亚洲图片小说| 色一情一乱一伦| 午夜久久福利影院| 青青草成人免费| 亚洲欧美一区二区三区久本道91| 国产调教在线观看| 国产午夜久久久久| 国产熟妇搡bbbb搡bbbb| 成人美女视频在线观看| 亚洲AV无码久久精品国产一区| 麻豆免费看一区二区三区| 国产又黄又猛视频| 久久成人国产| 青青草原成人网| 中文精品视频| 人人干视频在线| 好看的亚洲午夜视频在线| 50度灰在线观看| 自拍偷拍欧美专区| 日本成人在线不卡| 亚洲精品网址| 91看片淫黄大片91| 亚洲色图88| 亚洲色图都市激情| 欧美激情 亚洲a∨综合| 久久最新免费视频| 午夜久久影院| 女人帮男人橹视频播放| 欧美日韩精品免费观看视频完整| 久久观看最新视频| 欧美激情五月| 日本精品久久久久久久久久| 亚洲国产日本| 精品国产免费av| 免费精品视频| 男人的天堂日韩| 久久精品国产成人一区二区三区 | 日韩中文字幕欧美| 好了av在线| 久久久天堂国产精品女人| www成人免费观看| 热re99久久精品国产66热| 姬川优奈av一区二区在线电影| 国产精品久久不能| 91精品视频一区二区| 成人动漫在线视频| 伦理一区二区| 日韩国产伦理| 亚洲第一偷拍| 草草视频在线免费观看| 久久深夜福利| 免费成人黄色大片| aaa欧美日韩| 国产精品国产三级国产专业不| 亚洲欧美自拍偷拍色图| 久青草免费视频| 色乱码一区二区三区88 | 亚洲国产精品电影| 激情小视频在线观看| 久久精品视频亚洲| 高清在线视频不卡| 国产精品视频男人的天堂| 日韩中文字幕无砖| 欧美日韩精品免费看| 99精品在线| 久久久999免费视频| 免费看欧美女人艹b| 波多野结衣一二三区| 国产精品视频线看| 日韩三级免费看| 欧美日本在线看| 午夜视频免费看| 久久中文精品视频| 欧美日韩五区| 国产不卡一区二区在线观看| 精品国产美女| 日韩小视频在线播放| 久久激情五月激情| 日本aaa视频| 夜夜精品视频一区二区 | 在线免费观看亚洲视频| 日韩欧美亚洲综合| 99在线小视频| 亚洲最新中文字幕| 蜜臀久久精品| 91精品久久香蕉国产线看观看| 国语产色综合| 国产一级爱c视频| 国产一区二区精品久久| 色欲狠狠躁天天躁无码中文字幕 | 青青艹在线观看| 亚洲国产日韩欧美在线图片| а天堂中文在线官网| 国产成人精品久久| 久久porn| 999一区二区三区| 国产综合久久久久久久久久久久| 扒开jk护士狂揉免费| 婷婷综合另类小说色区| 亚洲第一视频在线| 久久亚洲精品一区| 男女啪啪999亚洲精品| 欧美中日韩免费视频| 国产精品婷婷| av黄色一级片| 亚洲一区二区三区激情| 国产精品久久久国产盗摄| 亚洲一级黄色av| 视频二区不卡| 欧美久久久久久久| 国产视频亚洲| 在线天堂www在线国语对白| 亚洲综合另类小说| 亚洲第一页视频| 久久99精品久久久久久青青91| 亚洲日本中文| 亚洲第一精品区| 久久精品国产第一区二区三区| 午夜影院黄色片| 欧美性videosxxxxx| 福利在线午夜| 国产精品精品一区二区三区午夜版 | 国产欧美69| 国产精品无码电影| 午夜不卡av免费| 亚洲av成人精品一区二区三区在线播放| 久久久久久久一| 久久porn| 成人综合视频在线| 久久―日本道色综合久久| 国产尤物在线视频| 亚洲欧美中文日韩v在线观看| 欧美色网一区| 日韩不卡av| 久久99精品国产麻豆婷婷洗澡| 黄色片网站在线播放| 91精品在线一区二区| 日本乱理伦在线| 国产中文一区二区| 日韩成人一级片| 精品少妇一区二区三区密爱| 91精品国产日韩91久久久久久| 欧美草逼视频| 久久综合伊人77777麻豆| 日韩电影免费在线看| 中国一级片在线观看| 精品三级在线观看| 成人影院入口| 亚洲精品中文综合第一页| 国产一区 二区 三区一级| 精品少妇一二三区| 亚洲欧美激情精品一区二区| 日本黄色一区| 国产女主播av| 99久久久精品免费观看国产蜜| 亚洲欧美一二三区| 久热在线中文字幕色999舞| 成人福利一区| 已婚少妇美妙人妻系列| 日韩理论片一区二区| 神宫寺奈绪一区二区三区| 国产精品视频久| 好吊日精品视频| 久久精品三级视频| 精品日韩在线一区| 国模私拍国内精品国内av| 欧美激情亚洲天堂| 国产调教视频一区| 国产丝袜在线视频| 国产成人精品免高潮费视频| 欧美1区视频| 三年中国中文观看免费播放| 日韩欧美国产成人一区二区| 视频在线日韩| 欧美一区二区视频在线播放| 中文字幕av一区二区三区| 亚洲精品久久久久avwww潮水| 国产成人午夜视频网址|