程序员社区

Gin发送HTTP错误码的简单方法

Gin发送HTTP错误码的简单方法插图

Go是一门非常流行的语言,这是有原因的。它是一种简单的语言,具有与c++等语言一样好的性能。Golang在web开发中的接受度正以很高的速度增长。

Gin web框架使用了一个自定义版本的HttpRouter,它能比其他大多数框架更快地路由到你的API处理函数。Gin声称比Martini快40倍。

在为服务开发API时,您可能需要一种方法来处理错误/异常,并向客户端返回适当的HTTP错误码和错误信息。下面的方案使处理错误情况变得非常容易。

response调度程序

响应调度程序的实现如下所示:

type Response struct {
  Status  int
  Message []string
  Error   []string
}


func SendResponse(c *gin.Context, response Response) {                                                                                                                                                              
  if len(response.Message) > 0 { 
    c.JSON(response.Status, map[string]interface{}{"message": strings.Join(response.Message, "; ")})
  } else if len(response.Error) > 0 { 
    c.JSON(response.Status, map[string]interface{}{"error": strings.Join(response.Error, "; ")})
  }   
}

上面的方法接受Context和Response结构体,实现通用的响应方式。此方法可用于向客户端发送各种HTTP错误码和错误消息。dispatcher的用法如下:

// 未授权访问
SendResponse(c, helpers.Response{Status: http.StatusUnauthorized, Error: []string{"Username and password do not match"}})
// 参数错误
SendResponse(c, helpers.Response{Status: http.StatusBadRequest, Error: []string{"One or more params are wrong"}})

总结:

有很多方式实现API发送错误响应,以上只是其中之一。每当我开始一个新项目,我更喜欢这样的方法,使的开发更轻松。

赞(0) 打赏
未经允许不得转载:IDEA激活码 » Gin发送HTTP错误码的简单方法

一个分享Java & Python知识的社区