一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - SpringBoot統一api返回風格的實現

SpringBoot統一api返回風格的實現

2021-08-20 11:26wz_app Java教程

這篇文章主要介紹了SpringBoot統一api返回風格的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

學過上一章的人也許發現問題了,接口返回的格式基本都是固定的,例如

?
1
2
3
4
5
{
 "code": 200,
 "msg": "",
 "data": "Object ....",
}

而我們的登陸卻返回

密碼必須傳!等等返回值

顯然我們的返回格式不符合常規開發,因為前臺并不知道這是錯誤信息還是正確返回信息!
所以我們簡單封裝一個返回類,代碼如下

添加base包,新建BaseResult類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import lombok.Data;
 
@Data
public class BaseResult {
  private int code;//200=成功,否則失敗
  private String msg;//失敗時的提示信息
  private Object data;//成功返回的內容
 
  public BaseResult(int code, String msg, Object data) {
    this.code = code;
    this.msg = msg;
    this.data = data;
  }
}

在修改下登陸的controller

?
1
2
3
4
5
6
7
8
9
10
@PostMapping("login")
public BaseResult login(@RequestParam(value = "user", defaultValue = "") String user,
            @RequestParam(value = "pass", defaultValue = "") String pass) {
  if (user.equals("")) return new BaseResult(400, "賬號必須傳!", "");
  if (pass.equals("")) return new BaseResult(400, "密碼必須傳!", "");
  User user1 = mapper.login(user, pass);
  if (user1 == null) return new BaseResult(500, "賬號密碼不正確!", "");
  user1.setPass("");
  return new BaseResult(200, "", user1);
}

接下來我們看下返回值

?
1
2
3
4
5
{
  "code": 400,
  "msg": "密碼必須傳!",
  "data": ""
}
?
1
2
3
4
5
6
7
8
9
{
  "code": 200,
  "msg": "",
  "data": {
    "id": 1,
    "user": "wz",
    "pass": ""
  }
}

上邊這種返回格式,前端就非常好解析

http各個狀態碼的含義:由三位數字組成,第一位定義了狀態碼的類型

2開頭:(請求成功)表示成功處理了請求的狀態代碼
200:(成功)服務器已成功處理了請求。通常,這表示服務器提供了請求的網頁。
201:(已創建)請求成功并且服務器創建了新的資源
202:(已接受)服務器已接受請求,但尚未處理
203:(非授權信息)服務器已成功處理了請求,但返回的信息可能來自另一資源。
204:(無內容)服務器成功處理了請求,但沒有返回任何內容
205:(重置內容)服務器成功處理了請求,但沒有返回任何內容
206:(部分內容)服務器成功處理了部分 GET 請求

3開頭:(請求被重定向)表示要完成請求,需要進一步操作。通常,這些狀態代碼用來重定向
300:(多種選擇)針對請求,服務器可執行多種操作。服務器可根據請求者(user agent)選擇一項操作,或提供操作列表供請求者選擇
301:(永久移動)請求的網頁已永久移動到新位置。服務器返回此響應(對 GET 或 HEAD 請求的響應)時,會自動將請求者轉到新的位置
302:(臨時移動)服務器目前從不同位置的網頁響應請求,但請求者應繼續使用原有位置來進行以后的請求
303:(查看其他位置)請求者應當對不同的位置使用單獨的 GET 請求來檢索響應時,服務器返回此代碼
304:(未修改)自從上次請求后,請求的網頁未修改過。服務器返回此響應,不會返回網頁內容
305:(使用代理)請求者只能使用代理訪問請求的網頁。如果服務器返回此響應,還表示請求者應使用代理
307:(臨時重定向)服務器目前從不同位置的網頁響應請求,但請求者繼續使用原有位置來進行以后的請求

4開頭:(請求錯誤)這些狀態碼表示請求可能出錯,妨礙了服務器的處理
400:(錯誤請求)服務器不理解請求的語法
401:(未授權)請求要求身份驗證。對于需要登錄的網頁,服務器可能返回此響應
403:(禁止)服務器拒絕請求
404:(未找到)服務器找不到請求的網頁
405:(方法禁用)禁用請求中指定的方法
406:(不接受)無法使用請求的內容特性響應請求的網頁
407:(需要代理授權)此狀態代碼與 401 (未授權)類似,但指定請求者應當授權使用代理
408:(請求超時)服務器等候請求時發生超時
409:(沖突)服務器在完成請求時發生沖突。服務器必須在響應中包含有關沖突的信息
410:(已刪除)如果請求的資源已永久刪除,服務器就會返回此響應
411:(需要有效長度)服務器不接受不含有效內容長度標頭字段的請求
412:(未滿足前提條件)服務器未滿足請求者在請求中設置的其中一個前提條件
413:(請求實體過大)服務器無法處理請求,因為請求實體過大,超出服務器的處理能力
414:(請求的 URI 過長)請求的URI(通常為網址)過長,服務器無法處理
415:(不支持的媒體類型)請求的格式不受請求頁面的支持
416:(請求范圍不符合)如果頁面無法提供請求的范圍,則服務器返回此狀態代碼
417:(未滿足期望值)服務器未滿足“期望”請求標頭字段要求

5開頭:(服務器錯誤)這些狀態代碼表示服務器在嘗試處理請求時發生內部錯誤。這些錯誤可能是服務器本身的錯誤,而不是請求出錯。
500:(服務器內部錯誤)服務器遇到錯誤,無法完成請求
501:(尚未實施)服務器不具備完成請求的功能。例如,服務器無法識別請求方法時可能會返回此代碼
502:(錯誤網關)服務器作為網關或代理,從上游服務器收到無效響應
503:(服務不可用)服務器目前無法使用(由于超載或停機維護)。通常,這只是暫時狀態
504:(網關超時)服務器作為網關或代理,但是沒有及時從上游服務器收到請求
505:(HTTP 版本不受支持)服務器不支持請求中所用的 HTTP 協議版本

到此這篇關于SpringBoot統一api返回風格的實現的文章就介紹到這了,更多相關SpringBoot統一api返回內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家! 

原文鏈接:https://juejin.cn/post/6936418983356825607

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲成人第一页 | 日本老妇乱子伦中文视频 | 亚洲欧洲综合 | 欧美色图亚洲天堂 | 91夜夜操| 3d动漫美女被吸乳羞羞有 | 福利国模私拍视频在线观看 | 亚洲精品影视 | 免费一级黄 | 好大好硬抽搐好爽想要 | 韩国最新三级网站在线播放 | youzljzljzljzlj96| 日本中文字幕一区二区三区不卡 | 九九热这里只有精品视频免费 | 男人的天堂视频在线 | 色老板在线视频观看 | 午夜AV国产欧美亚洲高清在线 | 教室眠催白丝美女校花 | 好大好湿好硬好爽好深免费视频 | 国产精品毛片久久久久久久 | 日本zzzzwww大片免费 | 白发在线视频播放观看免费 | 亚洲国产精品久久人人爱 | 免费在线观看日韩 | 女毛片| 亚洲国产精品综合久久一线 | h片免费网站 | 久久国产乱子伦免费精品 | 亚洲日韩欧美一区二区在线 | 亚洲天堂成人在线 | 美女扒开尿口让男生添 漫画 | 亚洲视频一区二区在线观看 | 国产一级黄毛片 | 免费jizz在在线播放国产 | 波多野结衣中文字幕在线 | 2020中文字幕 | 国产成人精品综合在线观看 | 毛片一级免费 | 91在线老王精品免费播放 | 久久中文字幕综合不卡一二区 | 日韩精品亚洲专区在线影视 |