response.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package rescode
  2. import (
  3. "dy-admin/pkg/log"
  4. "dy-admin/pkg/middleware"
  5. "github.com/gin-gonic/gin"
  6. "net/http"
  7. )
  8. // Response 用来返回错误消息的结构
  9. type Response struct {
  10. RequestId string `json:"requestId,omitempty"`
  11. Code string `json:"code,omitempty"`
  12. Message string `json:"message,omitempty"`
  13. Reference string `json:"reference,omitempty"`
  14. Data interface{} `json:"data,omitempty"`
  15. }
  16. // WriteErrResponse 解析错误中的错误码等消息,通过gin框架返回
  17. func WriteErrResponse(c *gin.Context, err error) {
  18. if err != nil {
  19. errCode := ParseCode(err)
  20. log.Errorf("%+v", errCode)
  21. c.JSON(errCode.HTTPStatus(), Response{
  22. RequestId: middleware.GetRequestIDFromContext(c),
  23. Code: errCode.Code(),
  24. Message: errCode.Message(),
  25. Reference: errCode.Reference(),
  26. Data: nil,
  27. })
  28. return
  29. }
  30. WriteSuccessResponse(c, nil)
  31. }
  32. func WriteSuccessResponse(c *gin.Context, data interface{}) {
  33. res := Response{
  34. RequestId: middleware.GetRequestIDFromContext(c),
  35. Code: successErrCode.Code(),
  36. Message: successErrCode.Message(),
  37. Data: data,
  38. }
  39. c.JSON(http.StatusOK, res)
  40. return
  41. }