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

瞧瞧,人家那后端API接口寫得多優雅!

開發 前端 開發工具
在移動互聯網,分布式、微服務盛行的今天,現在項目絕大部分都采用的微服務框架,前后端分離方式。

 在移動互聯網,分布式、微服務盛行的今天,現在項目絕大部分都采用的微服務框架,前后端分離方式。

[[352613]] 

圖片來自 Pexels

題外話:前后端的工作職責越來越明確,現在的前端都稱之為大前端,技術棧以及生態圈都已經非常成熟;以前后端人員瞧不起前端人員,那現在后端人員要重新認識一下前端,前端已經很成體系了。

一般系統的大致整體架構圖如下: 

 

需要說明的是,有些小伙伴會回復說,這個架構太簡單了吧,太 low 了,什么網關啊,緩存啊,消息中間件啊,都沒有。

因為這篇我主要介紹的是 API 接口,所以我們聚焦點,其他的模塊小伙伴們自行去補充。

接口交互

前端和后端進行交互,前端按照約定請求 URL 路徑,并傳入相關參數,后端服務器接收請求,進行業務處理,返回數據給前端。

針對 URL 路徑的 restful 風格,以及傳入參數的公共請求頭的要求(如:app_version,api_version,device 等),這里我就不介紹了,小伙伴們可以自行去了解,也比較簡單。

我著重介紹一下后端服務器如何實現把數據返回給前端?

返回格式

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

  1.     #返回狀態碼 
  2.     code:integer,        
  3.     #返回信息描述 
  4.     message:string, 
  5.     #返回值 
  6.     data:object 

①CODE 狀態碼

Code 返回狀態碼,一般小伙伴們是在開發的時候需要什么,就添加什么。

如接口要返回用戶權限異常,我們加一個狀態碼為 101 吧,下一次又要加一個數據參數異常,就加一個 102 的狀態碼。這樣雖然能夠照常滿足業務,但狀態碼太凌亂了。

我們應該可以參考 HTTP 請求返回的狀態碼,下面是常見的 HTTP 狀態碼:

  1. 200 - 請求成功 
  2. 301 - 資源(網頁等)被永久轉移到其它URL 
  3. 404 - 請求的資源(網頁等)不存在 
  4. 500 - 內部服務器錯誤 

 

我們可以參考這樣的設計,這樣的好處就把錯誤類型歸類到某個區間內,如果區間不夠,可以設計成 4 位數。

  1. #1000~1999 區間表示參數錯誤 
  2. #2000~2999 區間表示用戶錯誤 
  3. #3000~3999 區間表示接口異常 

這樣前端開發人員在得到返回值后,根據狀態碼就可以知道,大概什么錯誤,再根據 Message 相關的信息描述,可以快速定位。

②Message

這個字段相對理解比較簡單,就是發生錯誤時,如何友好的進行提示。一般的設計是和 Code 狀態碼一起設計,如:

再在枚舉中定義,狀態碼:

 

狀態碼和信息就會一一對應,比較好維護。

③Data

返回數據體,JSON 格式,根據不同的業務又不同的 JSON 體。

我們要設計一個返回體類 Result:

 

控制層 Controller

我們會在 Controller 層處理業務請求,并返回給前端,以 Order 訂單為例:

 

我們看到在獲得 Order 對象之后,我們是用的 Result 構造方法進行包裝賦值,然后進行返回。

小伙伴們有沒有發現,構造方法這樣的包裝是不是很麻煩,我們可以優化一下。

美觀優化

我們可以在 Result 類中,加入靜態方法,一看就懂:

 

那我們來改造一下 Controller:

 

代碼是不是比較簡潔了,也美觀了。

優雅優化

上面我們看到在 Result 類中增加了靜態方法,使得業務處理代碼簡潔了。

但小伙伴們有沒有發現這樣有幾個問題:

  • 每個方法的返回都是 Result 封裝對象,沒有業務含義。
  • 在業務代碼中,成功的時候我們調用 Result.success,異常錯誤調用 Result.failure。是不是很多余。
  • 上面的代碼,判斷 id 是否為 null,其實我們可以使用 hibernate validate 做校驗,沒有必要在方法體中做判斷。

我們最好的方式直接返回真實業務對象,最好不要改變之前的業務方式,如下圖:

 

這個和我們平時的代碼是一樣的,非常直觀,直接返回 order 對象,這樣是不是很完美。那實現方案是什么呢?

實現方案

小伙伴們怎么去實現是不是有點思路,在這個過程中,我們需要做幾個事情:

  • 定義一個注解 @ResponseResult,表示這個接口返回的值需要包裝一下。
  • 攔截請求,判斷此請求是否需要被 @ResponseResult 注解。
  • 核心步驟就是實現接口 ResponseBodyAdvice 和 @ControllerAdvice,判斷是否需要包裝返回值,如果需要,就把 Controller 接口的返回值進行重寫。

①注解類

用來標記方法的返回值,是否需要包裝:

 

②攔截器

攔截請求,是否此請求返回的值需要包裝,其實就是運行的時候,解析 @ResponseResult 注解。

 

此代碼核心思想,就是獲取此請求,是否需要返回值包裝,設置一個屬性標記。

③重寫返回體

上面代碼就是判斷是否需要返回值包裝,如果需要就直接包裝。這里我們只處理了正常成功的包裝,如果方法體報異常怎么辦?

處理異常也比較簡單,只要判斷 body 是否為異常類。

 

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

④重寫 Controller

 

在控制器類上或者方法體上加上 @ResponseResult 注解,這樣就 OK 了,簡單吧。到此返回的設計思路完成,是不是又簡潔,又優雅。

總結

這個方案還有沒有別的優化空間,當然是有的。如:每次請求都要反射一下,獲取請求的方法是否需要包裝,其實可以做個緩存,不需要每次都需要解析。

當然整體思路了解,小伙伴們就可以在此基礎上面自行擴展。謝謝!!!

作者:老顧

編輯:陶家龍 

出處:https://www.toutiao.com/i6694404645827117572

 

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2025-08-19 10:01:43

2020-11-03 16:00:33

API接口微服務框架編程語言

2022-12-12 08:14:47

2025-07-14 00:00:00

接口重試MQTT冪等性

2025-03-11 08:20:58

2024-11-12 08:20:31

2025-05-30 08:20:54

2025-04-08 08:20:33

2024-10-17 09:21:30

2024-10-24 08:21:33

2024-12-02 00:59:30

Spring

2025-04-22 08:20:51

2025-03-06 08:21:02

判空entity對象

2025-02-28 08:21:00

2021-10-11 08:08:02

Python異常程序

2024-12-06 12:17:31

2023-11-28 08:38:25

API接口開關

2021-10-22 14:50:23

Spring BootJava

2020-12-02 10:00:51

接口軟件Redis

2020-11-24 08:02:26

API接口重構
點贊
收藏

51CTO技術棧公眾號

公肉吊粗大爽色翁浪妇视频| av免费观看国产| av中文在线观看| 99综合精品| 中文字幕久久久av一区| 欧美xxxxxbbbbb| 色偷偷色偷偷色偷偷在线视频| 久久精品视频在线看| 亚洲淫片在线视频| 成人免费看片98欧美| 成人在线一区| 亚洲精品电影网在线观看| 蜜桃免费在线视频| free性m.freesex欧美| 99久久777色| 国产色综合天天综合网 | 动漫av在线免费观看| 色成人免费网站| 午夜久久久影院| 一级全黄肉体裸体全过程| 日韩a在线观看| 丁香亚洲综合激情啪啪综合| 国产精品丝袜白浆摸在线 | 色94色欧美sute亚洲线路一ni| 在线观看欧美亚洲| 美州a亚洲一视本频v色道| 国产高清不卡一区| 国产精品视频免费在线| 精品欧美一区二区三区免费观看| 午夜激情久久| 在线观看精品国产视频| 精品中文字幕在线播放| 亚洲欧美日本国产| 欧美日韩一区二区在线观看| 青青草原成人网| 欧美aaa免费| 亚洲男同性视频| 亚洲一区二区三区精品视频| 精品美女视频在线观看免费软件 | 羞羞视频在线观看欧美| 欧美成年人在线观看| 美女100%露胸无遮挡| 亚洲人成网www| 亚洲裸体xxxx| 久久久精品人妻无码专区| 北条麻妃一区二区三区在线| 欧美日本高清视频在线观看| 国产免费又粗又猛又爽| 日本精品在线中文字幕| 色综合久久综合网欧美综合网| 亚洲 自拍 另类小说综合图区| 青青草原av在线| 一区二区三区四区乱视频| 三年中文高清在线观看第6集| a视频网址在线观看| www国产亚洲精品久久麻豆| 久久久综合亚洲91久久98| 黄色一级a毛片| 成人性视频网站| 国产主播一区二区三区四区| 手机看片福利在线| 久久噜噜亚洲综合| 日韩wuma| 黄av在线免费观看| 一区二区三区日韩欧美| 国产传媒久久久| 2020日本在线视频中文字幕| 五月天视频一区| aⅴ在线免费观看| 全球最大av网站久久| 欧美日本在线一区| 免费观看黄网站| 久久香蕉网站| 伊人久久综合97精品| 国产在线免费看| 欧美视频导航| 欧美亚洲视频在线看网址| 日韩精品一区不卡| 激情五月激情综合网| 91传媒免费看| 五月天婷婷在线观看| 久久美女高清视频| 992tv成人免费观看| h片在线观看视频免费| 91精品福利视频| 亚洲一区二区偷拍| 亚洲电影男人天堂| 久久精品视频中文字幕| 亚洲国产精品午夜在线观看| 久久激情网站| 亚洲专区中文字幕| 免费理论片在线观看播放老| 日韩一区日韩二区| 欧美成人高潮一二区在线看| 电影亚洲一区| 亚洲а∨天堂久久精品喷水 | 国产亚洲电影| 欧美精品在线看| 久久精品视频5| 国产成人在线视频免费播放| 欧美色欧美亚洲另类七区| 看黄网站在线观看| 第一福利永久视频精品| 亚洲午夜精品一区| 久草在线成人| 欧美精品久久久久a| 中国精品一区二区| www.欧美日韩| 99久久久无码国产精品性色戒| 大菠萝精品导航| 6080亚洲精品一区二区| 超碰97人人干| 在线观看不卡| 91中文字幕在线| 成人午夜影视| 欧美性猛xxx| 337p日本欧洲亚洲大胆张筱雨| 国产欧美日韩在线观看视频| 欧美激情三级免费| 国产又粗又猛视频| 久久精品欧美日韩| 成人免费播放器| 日韩三级精品| 久久精品亚洲热| 欧美 亚洲 另类 激情 另类| 成人国产一区二区三区精品| 男女h黄动漫啪啪无遮挡软件| 亚洲成人短视频| 日韩美女av在线| 国产在线成人精品午夜| 国产久卡久卡久卡久卡视频精品| 亚洲不卡1区| 牛牛精品一区二区| 亚洲电影av在线| 国产亚洲精品久久久久久打不开| 久久狠狠亚洲综合| 亚洲一区二区精品在线| www.国产精品| 中文字幕在线成人| 国产精品第6页| 国产婷婷色一区二区三区四区| 国产av国片精品| 久久精品66| 98精品国产自产在线观看| 亚洲欧美另类一区| 亚洲国产一区二区三区青草影视| 亚洲妇女无套内射精| 欧美精品福利| 国产91精品入口17c| 欧美78videosex性欧美| 欧美大片拔萝卜| 久草视频在线免费看| 国产suv精品一区二区6| 福利视频免费在线观看| 激情亚洲另类图片区小说区| 国内精品久久久久久久| 网站黄在线观看| 色综合视频在线观看| 国产91丝袜美女在线播放| 免费观看在线综合色| 亚洲精品一区国产精品| 婷婷成人av| 久久6精品影院| 亚洲 精品 综合 精品 自拍| 日韩欧美999| 夫妇露脸对白88av| 国产毛片精品国产一区二区三区| wwwjizzjizzcom| 久久悠悠精品综合网| 欧美一区视频在线| 成a人片在线观看www视频| 欧美精品1区2区3区| 欧美日韩免费做爰视频| 99riav一区二区三区| 国产天堂在线播放| 亚洲香蕉av| 国产三区二区一区久久| 精品欧美一区二区三区在线观看 | 精品国内自产拍在线观看| 精品国产九九九| 欧美视频专区一二在线观看| 亚洲一二三精品| 国产精品一区二区视频| 人人妻人人添人人爽欧美一区| 国内亚洲精品| 97se国产在线视频| 婷婷综合六月| 欧美成人在线免费| 天堂成人在线| 6080yy午夜一二三区久久| 久久精品国产亚洲av麻豆色欲| 久久先锋影音av鲁色资源网| 久久6免费视频| 国产精品嫩草99av在线| 欧美xxxx吸乳| 沈樵精品国产成av片| 97在线资源站| 色天使综合视频| 欧美精品久久久久| 免费的黄网站在线观看| 日韩精品视频在线观看网址| 国产绿帽一区二区三区| 欧美小视频在线观看| 亚洲熟女www一区二区三区| 久久影视一区二区| 欧美69精品久久久久久不卡| 日韩专区在线视频| 激情五月宗合网| 亚洲成av人片乱码色午夜| 蜜桃传媒视频麻豆一区| 亚洲精品v亚洲精品v日韩精品| 国产精品白嫩美女在线观看| 黄网站在线观| 久久精品99久久久香蕉| 免费福利在线观看| 亚洲第一二三四五区| 国产一区二区三区中文字幕| 色婷婷一区二区三区四区| 国产一卡二卡在线播放| 日韩美女精品在线| 91导航在线观看| 久久先锋影音av| 亚洲一区二区三区综合| 国产91在线观看丝袜| 91视频这里只有精品| 青青草精品视频| aaa毛片在线观看| 国产欧美激情| 久久精品国产sm调教网站演员| 亚洲乱码免费伦视频| 亚洲一区二区三区精品动漫| 九九综合九九| 欧美国产综合视频| 九九热精品视频在线观看| 精品视频在线观看| 国产精品nxnn| 国产一区免费视频| 国内精品麻豆美女在线播放视频 | 午夜老司机福利| 91精品黄色片免费大全| 91精品国产综合久| 欧美日韩国产首页| 国产人妻精品一区二区三区| 在线播放91灌醉迷j高跟美女| 在线观看国产精品视频| 欧美三级电影在线看| 中文永久免费观看| 欧美日韩国产在线播放网站| 中日精品一色哟哟| 欧美日韩国产综合草草| 国产乱色精品成人免费视频| 5858s免费视频成人| 国产欧美久久久精品免费| 欧美精品日韩一本| 精品人妻久久久久一区二区三区| 日韩一本二本av| 狠狠躁日日躁夜夜躁av| 亚洲国产精品成人精品| 欧洲免费在线视频| 国产亚洲精品91在线| 在线激情小视频| 久久久久www| 蜜桃传媒在线观看免费进入 | 怡红院男人天堂| 欧美精品 国产精品| 国产xxxx在线观看| 亚洲国产精品电影在线观看| 天堂在线视频网站| 亚洲日本中文字幕| 日本福利在线| 欧美激情久久久| 华人av在线| 国产精品午夜一区二区欲梦| 国产一精品一av一免费爽爽| 国产精品日韩二区| 少妇精品久久久| 日本黄网站色大片免费观看| 亚洲国产99| 国产一区二区在线免费播放| 国产一区二区伦理片| 亚洲 欧美 日韩在线| 国产色一区二区| 麻豆国产尤物av尤物在线观看| 欧美午夜影院在线视频| 在线视频播放大全| 亚洲成人黄色网址| 91电影在线播放| 久久久久久久香蕉网| 精品九九久久| 精品国产中文字幕| 天天综合国产| 日韩精品视频久久| 国产一区二区调教| 国产精品成人一区二区三区电影毛片 | 欧美老人xxxx18| 亚洲 精品 综合 精品 自拍| 久久精品精品电影网| 超碰97免费在线| 国产免费成人av| 亚洲啊v在线免费视频| 欧美午夜精品久久久久免费视| 一区二区三区在线电影| 99久久久无码国产精品6| 国产剧情一区二区| 99久久99久久精品免费| 精品久久久久久久大神国产| 国产精品无码AV| 亚洲午夜激情免费视频| 成人在线高清免费| 成人欧美一区二区三区黑人孕妇| 性欧美lx╳lx╳| 18黄暴禁片在线观看| 精品影院一区二区久久久| 精品人妻一区二区三区香蕉 | 国产精品x8x8一区二区| 一区二区免费在线视频| 久久久久欧美精品| 国产乱了高清露脸对白| 亚洲自拍偷拍欧美| 国产视频一区二区三区四区五区| 国产一区二区久久精品| 手机在线观看av| 国产精品久久久久av福利动漫| 婷婷中文字幕一区| 婷婷六月天在线| 国产日韩精品一区| 精品国产一区二区三区四| 精品99一区二区三区| 天堂av最新在线| 成人黄色生活片| 欧美www视频在线观看| 男女啪啪网站视频| 久久久九九九九| 免费av网站在线| 亚洲日本成人网| 性感美女一区二区在线观看| 免费电影一区| 噜噜噜在线观看免费视频日韩 | 日本精品专区| 日韩av成人在线| 精品国产乱码久久久| 动漫av免费观看| 国产女人aaa级久久久级| www.久久视频| 国产性猛交xxxx免费看久久| 国模一区二区| 亚洲欧洲在线一区| 久久精品国产第一区二区三区| 又嫩又硬又黄又爽的视频| 欧美性xxxxxxxx| 欧美成人三区| 亚洲字幕一区二区| 国产在线欧美| 97人妻天天摸天天爽天天| 精品国产福利视频| 精品av中文字幕在线毛片| 国产精国产精品| 日韩电影二区| 国产探花一区二区三区| 亚洲成人高清在线| 青青免费在线视频| 国产精品久久久久久久av大片| 日韩欧美高清在线播放| 91亚洲永久精品| 日本网站在线播放| 亚洲欧美制服第一页| 精品裸体bbb| 天天爱天天做天天操| 高清av一区二区| 狠狠人妻久久久久久| 最近中文字幕2019免费| 中文在线综合| 欧美私人情侣网站| 椎名由奈av一区二区三区| 亚洲成人777777| 日本久久亚洲电影| 91精品国产91久久久久久密臀| 97中文字幕在线观看| 欧美性猛交xxxx偷拍洗澡| 在线观看二区| 高清视频在线观看一区| 久久亚洲图片| 99热精品免费| 亚洲理论在线a中文字幕| 亚洲精品aa| 男女激情无遮挡| 国产精品久久久久毛片软件| 超碰在线观看99| 国产va免费精品高清在线观看| 久久久久久美女精品| 玖草视频在线观看| 777欧美精品| 筱崎爱全乳无删减在线观看 | 99九九电视剧免费观看| 亚洲欧美日韩国产一区二区| 日本美女xxx| 亚洲第一色中文字幕| 久久精品97| 国产黄视频在线| 亚洲精品第1页|