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

Gin 實現統一異常處理和封裝統一返回結果

開發 前端
為了讓這些錯誤信息以及正常情況的返回數據都有統一的結構來管理,我們需要先定義一個統一返回的數據結構體。要想實現統一的異常處理,我們需要借助Gin提供的中間件功能去在返回數據之前,攔截到出現的錯誤,在這里重新包裝成我們定義的統一結構體。

在使用Gin開發web應用的時候,業務異常是很常見的,通常我們會為每個異常情況定義一個唯一的error。同時當發生異常的時候,我們也需要把異常信息放入到接口的響應信息里面,方便頁面上做提示。

//業務異常
package bizerr


const (
 // 定義可預見的異常
  UserNotFound = 10001
  PasswrodErr = 10002
)


var resultCodeText = map[int]string{
  UserNotFound: "用戶不存在",
}


func Message(code int) (string, bool) {
  message, ok := resultCodeText[code]
  return message, ok
}

錯誤碼這里有5位 

1

01

01

錯誤級別,如服務級

模塊級,如用戶模塊

具體的錯誤碼,如用戶名錯誤

  • 錯誤級別:服務級錯誤用1,普通錯誤用2,通常是用戶的非法操作      
  • 模塊級錯誤碼:2 位數進行表示,比如 01 為用戶模塊;02 為訂單模塊  
  • 具體錯誤碼:2 位數進行表示,比如 01 為手機號不合法;02 為密碼輸入錯誤

為了讓這些錯誤信息以及正常情況的返回數據都有統一的結構來管理,我們需要先定義一個統一返回的數據結構體。

要想實現統一的異常處理,我們需要借助Gin提供的中間件功能去在返回數據之前,攔截到出現的錯誤,在這里重新包裝成我們定義的統一結構體。

package middleware


import (
  "net/http"


  "github.com/gin-gonic/gin"
)


// Result 表示統一響應的JSON格式
type Result struct {
  Code    int         `json:"code"`    // 狀態碼
  Message string      `json:"message"` // 響應消息
  Data    interface{} `json:"data"`    // 響應數據
}

接下來我們要給 Result 提供幾個常用的方法,比如出現異常時候需要調用的方法,正常情況下需要調用的方法。

func Fail(c *gin.Context, code int, message string) {
  c.JSON(code, Result{
    Code:    code,
    Message: message,
    Data:    nil,
  })
   c.Abort()
}
  //異常信息從定義好的bizerr里面獲取
 func Fail(c *gin.Context, code int) {
  message, _ := bizerr.StatusText(code)
  c.JSON(code, Result{
    Code:    code,
    Message: message,
    Data:    nil,
  })
  c.Abort()
}


//ok  不需要返回數據 data
func Ok(c *gin.Context, code int) {
  c.JSON(code, Result{
    Code:    code,
    Message: message,
    Data:    nil,
  })
}


//接口執行正常 需要返回數據 data
func Ok(c *gin.Context, code int, message string,
 data interface{} ) {
  c.JSON(code, Result{
    Code:    code,
    Message: message,
    Data:    data,
  })
}


//接口執行正常 需要返回數據 data
func Ok(c *gin.Context, code int,
 data interface{} )
 {
  c.JSON(code, Result{
    Code:    code,
    Message: "ok",
    Data:    data,
  })
}

實現攔截返回結果的中間件

func GlobalErrorMiddleware() gin.HandlerFunc {
  return func(c *gin.Context) {
  
   //先執行請求
    c.Next()


    // 發生了錯誤
    if len(c.Errors) > 0 {
    //獲取最后一個error 返回
      err := c.Errors.Last()
      Fail(c, http.StatusInternalServerError, err.Error())
      return
    }


    
    
  }
}

使用中間件

func main() {
  r := gin.New()
  r.Use(middleware.GlobalErrorMiddleware())


  r.GET("/test2", func(c *gin.Context) {
    m := map[string]interface{}{
      "lang": "go",
       
     } 
    data:=Result{
     Data: m,
    }
    
    middleawre.Ok(http.Status.OK,data)
  })
  
  r.Run(":8080")
}

使用postman 返回

圖片圖片

由此,我們看到了Gin提供的中間件的威力,中間件可以幫助我們做很多中間的事情。

通過定義統一的返回結構,使得我們的所有接口都可以以相同的數據結構展示給需要調用接口的人。大大提高了代碼的可讀性和維護性。

責任編輯:武曉燕 來源: golang學習記
相關推薦

2022-05-30 08:03:06

后端參數校驗異常處理

2022-05-07 10:09:01

開發Java日志

2025-02-13 00:34:22

Spring對象系統

2017-05-18 14:14:25

過濾器Spring ClouZuul

2024-10-28 08:32:22

統一接口響應SpringBoot響應框架

2019-08-22 14:02:00

Spring BootRestful APIJava

2017-05-19 15:13:05

過濾器Spring ClouZuul

2017-07-31 15:47:50

Zuul統一處理

2021-04-30 07:34:01

Spring BootController項目

2022-08-31 08:19:04

接口returnCode代碼

2022-03-15 21:38:29

sentry微服務監控

2012-04-11 10:58:13

統一通信

2025-04-09 08:00:00

FastAPI統一響應全局異常處理

2024-08-09 08:25:32

Spring流程注解

2009-07-06 15:06:52

網管軟件KoolPoint 摩卡

2010-12-21 18:07:39

2019-09-29 10:23:09

APIJava編程語言

2016-11-15 09:44:21

大數據批處理流處理

2018-09-28 10:19:28

微軟 Windows 方案

2024-09-25 08:10:00

Spring后端
點贊
收藏

51CTO技術棧公眾號

久久精品一区中文字幕| 日本亚洲一区| 99久久婷婷国产综合精品首页| 91在线精品一区二区| 国产一区二区电影| 欧美午夜精品久久久久久孕妇| 欧美一区二区三区四区五区六区| 中文字幕人妻精品一区| 亚洲精品一区二区妖精| 精品成人在线观看| 老司机午夜av| 伊人手机在线| 2020国产成人综合网| 国产精品亚洲激情| 青娱乐国产在线| 一道在线中文一区二区三区| 欧美久久免费观看| 久久国产精品网| 在线免费av网站| 成人午夜av影视| 国产精品视频免费在线| 国产一级片免费观看| 精品久久久久久久| 精品国产露脸精彩对白 | 免费看污片的网站| 欧美a级大片在线| 在线一区二区三区四区| 久久精品99久久| 开心九九激情九九欧美日韩精美视频电影| 欧美v国产在线一区二区三区| 久久精品99国产| 2021国产在线| 国产精品免费看片| 欧美激情视频一区二区三区| a级片免费观看| 日本不卡免费在线视频| 97在线视频免费播放| 亚洲女人久久久| 精品视频99| 亚洲精品永久免费| 亚洲美女在线播放| 国产美女精品视频免费播放软件| 91激情在线视频| 久久久一本二本三本| 少女频道在线观看免费播放电视剧| 国产日产欧美一区二区视频| 国产美女精品久久久| 国产精品视频第一页| 欧美a级理论片| 日韩女优在线播放| 九九热在线免费观看| 极品日韩av| 色综合视频一区中文字幕| 午夜免费激情视频| 牛牛国产精品| 欧美成人精品在线播放| 一区二区三区影视| 91精品久久久久久久蜜月| 日韩视频永久免费观看| 中文字幕精品亚洲| 日韩精品2区| 久久久999成人| 97在线观看免费高| 综合激情网站| 色综合视频网站| 精品少妇theporn| 黄色欧美日韩| 国内精品久久久久久| 久久久久久久蜜桃| 亚洲国产影院| 午夜精品福利电影| 美日韩一二三区| 久久亚洲欧美| 国产精品国产亚洲伊人久久 | 免费看黄色的视频| 久久99国产精一区二区三区| 国产一区二区免费| 九九精品视频免费| 一区在线免费观看| 欧美怡春院一区二区三区| 国产一区二区99| 香蕉久久夜色精品| 日本欧美中文字幕| 在线视频 中文字幕| 久久国产精品72免费观看| 亚洲iv一区二区三区| 亚洲av无码乱码国产麻豆| 成人a区在线观看| 久久久久久草| 日韩在线资源| 亚洲乱码中文字幕| 午夜精品久久久久久久无码| 伊伊综合在线| 欧美三区在线观看| 中文字幕一区二区在线观看视频| 粉嫩的18在线观看极品精品| 亚洲精品电影网站| youjizz亚洲女人| 亚洲成人日韩| 91av在线视频观看| 伊人影院中文字幕| 国产电影一区在线| 国产精品小说在线| 熟妇高潮一区二区三区| 久久香蕉国产线看观看99| 日韩在线三级| 污污视频在线| 色婷婷综合久久久中文字幕| 男人添女人下面免费视频| 97久久中文字幕| 亚洲国产精品成人va在线观看| 国产91aaa| 国产成人三级在线观看视频| 成人免费毛片嘿嘿连载视频| 日韩经典在线视频| 蜜桃传媒在线观看免费进入| 色一区在线观看| 精品国产乱码久久久久久1区二区| 粉嫩精品导航导航| 中文字幕日韩av综合精品| a级片在线观看免费| 欧美专区在线| www.久久草| 日本成人网址| 欧美性猛交xxxx乱大交蜜桃| 成人av毛片在线观看| 色狼人综合干| 久久99久久久久久久噜噜| 日本黄色一级视频| 懂色av中文字幕一区二区三区 | 日韩一区二区欧美| 日韩少妇高潮抽搐| 精东粉嫩av免费一区二区三区| 欧美激情精品久久久久久黑人 | 国产精品毛片一区二区在线看| 久久久久久午夜| 一区二区视频免费| 91一区在线观看| 福利视频一二区| 欧美区一区二区| 在线观看欧美成人| 国内精品福利视频| 懂色中文一区二区在线播放| 最新欧美日韩亚洲| 快播电影网址老女人久久| 精品剧情在线观看| 91禁男男在线观看| 日韩av中文字幕一区二区三区| 精品国产区在线| 久久久123| 91精品蜜臀在线一区尤物| b站大片免费直播| 中文日韩在线| 国产伦精品一区二区三区| 中文在线免费| 欧美日韩和欧美的一区二区| 成人午夜免费影院| 蜜桃久久久久久| 视频在线精品一区| 免费成人动漫| 亚洲欧美在线免费| 日本中文字幕第一页| av在线播放不卡| 国产九九九九九| 国偷自产视频一区二区久| 欧美剧在线观看| 国产草草影院ccyycom| 亚洲欧洲韩国日本视频| 奇米视频7777| 99久久婷婷| 国产自摸综合网| 含羞草www国产在线视频| 7777女厕盗摄久久久| 午夜国产福利视频| 日韩电影在线免费观看| 亚洲丰满在线| 4438五月综合| 久久久久这里只有精品| 五月天婷婷激情网| 在线精品视频免费观看| 懂色av粉嫩av浪潮av| 久久国产三级精品| 永久免费网站视频在线观看| h视频久久久| 2021国产精品视频| 免费理论片在线观看播放老| 在线观看日韩电影| 国产免费久久久久| 成av人片一区二区| 欧美私人情侣网站| 青青草国产成人a∨下载安卓| 国产精品免费网站| 日本在线观看高清完整版| 亚洲精品久久7777777| 亚洲自拍一区在线观看| 中文字幕成人在线观看| 91精品视频国产| 激情六月综合| 亚洲国产成人不卡| 国产精品一区二区三区av| 欧美多人爱爱视频网站| 色播色播色播色播色播在线| 欧美三级三级三级| 久草福利资源在线观看| 国产aⅴ综合色| 欧美自拍小视频| 欧美日韩91| 欧美在线播放一区| 日韩中文一区二区| 欧美一级在线亚洲天堂| 在线观看麻豆| 精品一区二区亚洲| 999免费视频| 日韩欧中文字幕| 天天操天天操天天操天天操天天操| 国产91富婆露脸刺激对白| 欧美精品成人网| 亚洲国产专区| 色哺乳xxxxhd奶水米仓惠香| 亚洲成aⅴ人片久久青草影院| 成人欧美一区二区三区在线| 欧美激情护士| 美日韩在线视频| 国产一区电影| 亚洲国产欧美一区二区丝袜黑人 | 激情久久一区| 中文字幕日韩精品久久| 香蕉久久精品| dy888夜精品国产专区| 怡红院成人在线| 久久视频在线直播| 888av在线| 精品视频久久久久久久| 国产露脸无套对白在线播放| 欧美性感美女h网站在线观看免费| 欧美人禽zoz0强交| 国产欧美一区二区在线观看| jizz欧美性20| 丁香婷婷综合色啪| 伊人五月天婷婷| 日本成人中文字幕| 日韩欧美在线播放视频| 激情综合中文娱乐网| www..com日韩| 欧美在线免费一级片| 亚洲精品在线观看免费| 久久精品亚洲成在人线av网址| 亚洲xxxx做受欧美| 99tv成人影院| 国产日韩av在线播放| 国产精品亚洲d| 欧美一区二区三区……| √8天堂资源地址中文在线| 久久久久中文字幕2018| 大黄网站在线观看| 欧美丰满少妇xxxxx做受| 成人video亚洲精品| 日韩中文在线不卡| 99re热久久这里只有精品34| 中国人与牲禽动交精品| 成人全视频高清免费观看| 亚洲美女免费精品视频在线观看| 天堂8在线视频| 亚洲精品xxx| 熟妇人妻系列aⅴ无码专区友真希| 日韩精品久久久久久久玫瑰园| 少妇av在线播放| 精品国产伦一区二区三区观看体验| av免费观看在线| 日韩欧美一区二区久久婷婷| 在线观看国产区| 91.成人天堂一区| jizz中国少妇| 精品精品国产高清a毛片牛牛 | 国内精品伊人久久久久av影院| 91精品999| 国产suv一区二区三区88区| 丰满人妻一区二区三区53视频| 成人免费观看视频| 在线观看国产免费视频| 久久久久久毛片| 亚洲a∨无码无在线观看| 日韩理论片在线| 国产手机在线视频| 色综合天天做天天爱| 国产成人av免费| 欧美精品自拍偷拍动漫精品| 国产伦精品一区二区三区四区| 欧美专区亚洲专区| 国产福利第一视频| 日韩av影视综合网| 蝌蚪视频在线播放| 久久久www成人免费精品| 日本电影在线观看| 97视频在线观看播放| 亚洲综合资源| 精品无码久久久久久久动漫| 妖精一区二区三区精品视频 | 天天爽夜夜爽人人爽| 4438x成人网最大色成网站| 亚洲精品字幕在线| 亚洲人a成www在线影院| 91精彩视频在线播放| 日韩一区二区三区在线播放| gogogogo高清视频在线| 欧美在线观看视频| 国产高清视频一区二区| 国产精品精品软件视频| 亚洲欧美tv| 日本xxx免费| 国产精品videossex久久发布| 日本久久精品一区二区| 国产精品69毛片高清亚洲| 中文字幕在线免费看线人| 国产精品久线在线观看| 国产成人无码精品| 欧美成人欧美edvon| 国产视频第一页在线观看| 欧美日韩爱爱视频| 日韩免费小视频| 91在线免费网站| 欧美日韩性在线观看| 成人在线播放网址| 激情综合网激情| 麻豆精品免费视频| 亚洲免费观看高清完整| 亚洲最大成人av| 亚洲精品一区av在线播放| 呦呦在线视频| 国产精品白嫩美女在线观看| 77成人影视| 国产人妻互换一区二区| 日本不卡在线视频| 97超碰在线资源| 亚洲成av人片| 国产又粗又黄视频| 色噜噜久久综合伊人一本| 伊人久久综合一区二区| 国产精品一国产精品最新章节| 98精品久久久久久久| 日本黄大片一区二区三区| 久久久蜜桃精品| 日本最新中文字幕| 欧美大胆人体bbbb| 黄av在线免费观看| 91最新在线免费观看| 99久久精品费精品国产| 天天干天天玩天天操| 国产女人18毛片水真多成人如厕| 精品一区在线视频| 精品国产亚洲一区二区三区在线观看| 在线免费观看黄| 国产精品欧美激情在线播放| 国产欧美日韩视频在线| 久久艹国产精品| 丁香婷婷综合色啪| 国产性生活网站| 欧美成人午夜电影| 成人午夜在线影视| 国产成人精品免费视频大全最热| 91高清一区| 4438x全国最大成人| 一区二区三区欧美视频| 国产成人手机在线| 91av视频导航| 丝袜久久网站| 久久综合久久色| 国产精品女同一区二区三区| 最近中文字幕av| 中文字幕av日韩| 色婷婷成人网| 中文字幕中文字幕一区三区| 成人午夜在线视频| 日韩美女视频网站| 亚洲欧美日韩天堂| 日本精品网站| www.激情网| 91在线观看污| 正在播放木下凛凛xv99| 精品中文字幕视频| 国产一区调教| 日韩av资源在线| 国产精品视频第一区| 亚洲精品国产片| 91av在线影院| 日韩国产综合| 亚洲精品久久久久久| 色综合久久久久综合99| 最新97超碰在线| 91成人免费在线观看| 在线亚洲伦理| www.5588.com毛片| 亚洲国产精品大全| 久久久成人av毛片免费观看| 日本一区二区免费高清视频| 99re这里只有精品视频首页| 国产在线一级片| 欧美极品欧美精品欧美视频 | 亚洲精品一线二线三线 | 欧美亚洲伦理www|