精品欧美一区二区三区在线观看 _久久久久国色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)

国产视频久久久| 狠狠操狠狠色综合网| 亚洲伊人成综合成人网| 91aaa在线观看| 国产精品国产| 色呦呦一区二区三区| 午夜精品一区二区三区在线观看| 在线观看中文字幕2021| 欧美日韩国内| 亚洲第一区中文99精品| 亚洲爆乳无码专区| 国产日产一区二区| 91亚洲永久精品| 国产主播欧美精品| 日本特级黄色片| 午夜激情久久| 亚洲日韩中文字幕在线播放| 国产农村妇女精品久久| 欧美伦理91| 伊人性伊人情综合网| 日本黑人久久| 无码国产精品高潮久久99| 日本v片在线高清不卡在线观看| 欧美精品日韩www.p站| 国产熟女一区二区| 玖玖玖免费嫩草在线影院一区| 欧美日韩一区二区三区高清| 男人日女人下面视频| 中文字幕有码在线观看| 国产精品剧情在线亚洲| 免费一区二区三区| 天天av天天翘| 成人高清视频在线| 97人人香蕉| 国产尤物视频在线观看| 日本在线不卡一区| 欧美一区二区影院| 91蜜桃视频在线观看| 欧美成人有码| 美女性感视频久久久| www久久久久久久| 综合亚洲自拍| 亚洲男人的天堂在线播放| 性色av蜜臀av浪潮av老女人| 免费精品一区| 欧美一级二级三级蜜桃| 国产美女18xxxx免费视频| 8av国产精品爽爽ⅴa在线观看| 欧美色另类天堂2015| 亚洲 欧美 日韩 国产综合 在线| 日本在线视频网址| 一区二区三区av电影 | 一本久道中文无码字幕av| h片视频在线观看| 亚洲国产精品久久一线不卡| 欧美在线观看黄| 日本动漫同人动漫在线观看| 夜夜嗨av一区二区三区中文字幕| 水蜜桃在线免费观看| gogo在线高清视频| 亚洲精品成人悠悠色影视| 成人在线免费观看视频网站| 午夜羞羞小视频在线观看| 一区二区三区在线免费播放 | 亚洲另类视频| 国外色69视频在线观看| 欧美一级视频免费观看| 免费亚洲婷婷| 国产精品亚洲网站| 97人妻精品一区二区三区软件| 国产综合成人久久大片91| 亚洲va欧美va国产综合久久| 超碰免费在线97| 99热99精品| 日韩高清av电影| 国产三级电影在线观看| 1024亚洲合集| 国产无限制自拍| 成人小电影网站| 欧美日韩一区二区三区四区五区| 日韩欧美理论片| 国产精伦一区二区三区| 亚洲免费人成在线视频观看| 精品人妻一区二区三区四区| 亚洲午夜精品一区 二区 三区| 欧美大片在线影院| 亚洲欧美自拍视频| 久久99国产精品成人| caoporn国产精品免费公开| 人妻一区二区三区四区| 国产欧美日韩在线| 成人短视频在线观看免费| 女人让男人操自己视频在线观看 | 色综合天天色综合| 日韩影片在线观看| 亚洲欧美日韩国产中文专区| 波兰性xxxxx极品hd| 韩国在线一区| 国产精品美女视频网站| 亚洲av无码片一区二区三区| 国产亚洲精品精华液| 黑人巨茎大战欧美白妇| 欧美大片1688| 日韩欧美美女一区二区三区| 91激情视频在线观看| 欧美一区二区| 国产精品久久久久久婷婷天堂 | 国产成人午夜性a一级毛片| 日韩三级免费观看| 国产精品20p| 在线播放日韩| 亚洲精品欧美极品| 成人亚洲综合天堂| 婷婷中文字幕综合| 深爱五月综合网| 久久激情电影| 欧亚精品在线观看| 好吊视频一区二区三区| 最新国产の精品合集bt伙计| 成人免费观看视频在线观看| 亚洲乱码一区| 免费91麻豆精品国产自产在线观看| 久久国产精品免费看| 国产成人av福利| 9999在线观看| 成人全视频免费观看在线看| 精品视频久久久久久| 久久免费黄色网址| 国产乱人伦偷精品视频不卡| 亚洲欧美日韩不卡一区二区三区| 免费亚洲电影| 亚洲美女在线看| 国产精品人人人人| jvid福利写真一区二区三区| 日韩免费在线观看av| 国产亚洲高清一区| 久久躁日日躁aaaaxxxx| 国产精品视频久久久久久| 国产精品久线在线观看| 伊人影院综合在线| 日韩欧美午夜| 国产精品揄拍500视频| 国产原创av在线| 日韩欧美亚洲范冰冰与中字| 欧美xxxx×黑人性爽| 在线欧美亚洲| 国产三区精品| 深夜在线视频| 亚洲欧美在线免费观看| 无码人妻精品一区二区| 国产欧美综合色| 中文字幕第36页| 成人精品电影| 成人黄色在线免费| 国产美女在线观看| 精品福利在线导航| 午夜毛片在线观看| www国产精品av| 日韩精品无码一区二区三区免费| 精品国产精品| 国产综合久久久久久| 超碰在线网址| 亚洲激情成人网| 手机看片久久久| 国产清纯白嫩初高生在线观看91| 亚洲欧洲日本精品| 女生裸体视频一区二区三区| 国产精品区二区三区日本| 国产一二在线播放| 一区二区亚洲欧洲国产日韩| 一区二区三区免费观看视频| 亚洲日本在线视频观看| 性活交片大全免费看| 亚洲一区激情| 亚洲人成网站在线播放2019| 欧美成人三级| 欧美激情2020午夜免费观看| 日本精品专区| 欧美剧情电影在线观看完整版免费励志电影 | 日本免费a视频| 亚洲人挤奶视频| 国产拍精品一二三| 2018av在线| 中文字幕国产亚洲2019| 国产不卡av在线播放| 精品毛片网大全| 欧美日韩国产黄色| 国产成人啪午夜精品网站男同| 黄色网页免费在线观看| 色婷婷一区二区三区| 国产精品区二区三区日本| 国产精品久久久久av电视剧| 欧美精品一区在线播放| 飘雪影视在线观看免费观看| 91精品国产色综合久久不卡电影| 男人的天堂一区二区| 中文字幕在线播放不卡一区| 少妇被狂c下部羞羞漫画| 全部av―极品视觉盛宴亚洲| a级免费在线观看| 日本不卡免费一区| 国产呦系列欧美呦日韩呦| 日韩黄色三级| 欧美亚洲成人xxx| 影院在线观看全集免费观看| 亚洲色图美腿丝袜| 婷婷开心激情网| 6080国产精品一区二区| 亚洲不卡在线视频| 亚洲高清久久久| 国产老头老太做爰视频| 国产亚洲制服色| 漂亮人妻被黑人久久精品| 精品亚洲国产成人av制服丝袜| 日韩精品―中文字幕| 综合久久久久| 在线天堂一区av电影| 免费成人高清在线视频theav| 91久久极品少妇xxxxⅹ软件 | 91色p视频在线| 精品3atv在线视频| 欧美亚洲日本网站| √天堂8资源中文在线| 久久这里有精品视频| 日本视频在线观看| 这里只有精品视频在线| 日韩专区一区二区| 亚洲精品999| 亚洲国产综合一区| 欧美一区二区免费视频| 亚洲一区二区色| 欧美日韩一级二级| 中文字幕av网站| 欧美制服丝袜第一页| 国产精品久免费的黄网站| 精品久久久国产| 日韩aaaaaa| 无码av中文一区二区三区桃花岛| 国产精品九九九九九九| 一个色在线综合| 久久久久久国产精品免费播放| 1000部国产精品成人观看| 黄色一级大片在线免费观看| 国产精品毛片a∨一区二区三区 | 一区二区三区四区在线免费观看| www色aa色aawww| 亚洲欧美偷拍另类a∨色屁股| 一区二区三区在线播放视频| 国产精品免费观看视频| 毛片视频免费播放| 日韩一区欧美一区| 美女的奶胸大爽爽大片| 樱桃视频在线观看一区| 国产性一乱一性一伧一色| 亚洲一区二区三区小说| 日韩免费视频网站| 色综合久久综合| 久久久久久亚洲av无码专区| 欧美在线一二三四区| 在线播放精品视频| 日韩一区二区不卡| 人妻丰满熟妇av无码区hd| 亚洲精品日韩丝袜精品| 狠狠狠综合7777久夜色撩人| 在线观看中文字幕亚洲| 国产区在线看| 久久久中精品2020中文| 色黄视频在线观看| 国产精品视频精品| 国产一区一区| 国产精品福利视频| 亚洲色图丝袜| 亚洲欧美日韩国产yyy| 欧美va天堂在线| 久久综合色视频| 日本最新不卡在线| 九九九久久久久久久| 91在线视频播放| 99久久久无码国产精品不卡| 一区二区三区欧美在线观看| 51国产偷自视频区视频| 欧美日韩国产高清一区二区三区| 国产福利第一页| 亚洲欧洲在线视频| www.在线视频| 日本中文字幕成人| 欧美经典一区| 免费久久久一本精品久久区| 无需播放器亚洲| 免费观看日韩毛片| 精品一区中文字幕| www.超碰97| 亚洲精选一二三| 69成人免费视频| 日韩欧美一级二级三级久久久| 色视频免费在线观看| 久久这里只有精品视频首页| 亚洲精品日产| 99c视频在线| 成人精品影院| 日韩精品―中文字幕| 国产一二精品视频| 成人无码av片在线观看| 亚洲国产欧美日韩另类综合| 中文字幕91爱爱| 亚洲女人天堂av| 国产三级伦理在线| 成人欧美在线观看| 国产精品一国产精品| 日韩国产一级片| 国产在线国偷精品产拍免费yy| 极品人妻一区二区三区| 一区二区激情小说| 国产又粗又长又黄| 一区二区福利视频| 都市激情国产精品| 不卡一卡2卡3卡4卡精品在| 日韩欧美精品一区| 男人插女人下面免费视频| 99久久精品免费| 久久久久久久久久久久久久免费看 | 搡老岳熟女国产熟妇| 美女福利视频一区| 久久精品国产福利| 神马影院我不卡午夜| 在线视频精品| 亚洲色图欧美另类| 亚洲一级二级三级在线免费观看| 国产乱淫a∨片免费观看| 中文字幕欧美日韩| 欧美日韩国产网站| 农村寡妇一区二区三区| 亚洲欧美成人综合| 黄色片视频免费观看| 亚洲成av人片观看| 日本黄色大片视频| 久久久久久久久久久免费 | 99热都是精品| 久草精品在线观看| 长河落日免费高清观看| 欧美性色综合网| 成年人视频网站在线| 国产成人综合精品| 欧美日韩在线二区| 亚洲精品手机在线观看| 国产精品嫩草久久久久| 国产又黄又大又粗的视频| 久久久国产一区| 精品亚洲二区| 日本香蕉视频在线观看| 福利一区福利二区| 91在线看视频| 国产亚洲欧洲高清| 国产精品第一| 成人短视频在线看| 国产精品亚洲成人| 久久免费视频99| 日韩精品久久久久久久玫瑰园| 少妇视频在线观看| 色播亚洲婷婷| 精品一区二区三区免费视频| 黄视频网站免费看| 精品免费日韩av| 国产盗摄——sm在线视频| 欧美精品尤物在线| 免费成人av资源网| 欧美日韩在线观看成人| 亚洲精品一区二区三区香蕉 | 欧美日韩1080p| 日韩www视频| 欧美中文字幕一二三区视频| 免费观看在线黄色网| 超碰97国产在线| 香蕉久久a毛片| 九九热久久免费视频| 日韩一卡二卡三卡| 深夜福利视频一区二区| 日韩精品一线二线三线| 国产精品自在欧美一区| 天天爽夜夜爽夜夜爽精品| 中文字幕最新精品| 亚洲午夜免费| 久久综合久久色| 一区二区三区精品久久久| 日韩三级电影网| 亚洲影视中文字幕| 老司机精品福利视频| www.xxxx日本| 日韩精品一区二区三区第95| 精品乱码一区二区三区四区| 国产美女永久无遮挡| 国产欧美一区二区在线观看| 精品女同一区二区三区| 日韩暖暖在线视频| 中文av一区| 日本一级免费视频| 精品国产乱码久久久久久影片| 成人网ww555视频免费看| 天堂8在线天堂资源bt| 国产精品久久久久aaaa|