response.go 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package entity
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "net/http"
  5. )
  6. /*
  7. {
  8. "code": 10000, // 程序中的错误码
  9. "msg": xx, // 提示信息
  10. "data": {}, // 数据
  11. }
  12. */
  13. type ResponseData struct {
  14. Code ResCode `json:"code"`
  15. Msg interface{} `json:"msg"`
  16. Body interface{} `json:"data,omitempty"`
  17. }
  18. type ResponseBodyData struct {
  19. Code ResCode `json:"code"`
  20. Msg interface{} `json:"msg"`
  21. Body interface{} `json:"body,omitempty"`
  22. }
  23. type ResponseNormalBody struct {
  24. Code int `json:"code"`
  25. Msg interface{} `json:"msg"`
  26. Body interface{} `json:"body,omitempty"`
  27. }
  28. type ResponseNormalData struct {
  29. Code int `json:"code"`
  30. Msg interface{} `json:"msg"`
  31. Body interface{} `json:"data,omitempty"`
  32. }
  33. // Response error
  34. func ResponseError(c *gin.Context, code ResCode) {
  35. c.JSON(http.StatusOK, &ResponseData{
  36. Code: code,
  37. Msg: code.Msg(),
  38. Body: nil,
  39. })
  40. }
  41. // Response error with msg
  42. func ResponseErrorWithMsg(c *gin.Context, code ResCode, msg interface{}) {
  43. c.JSON(http.StatusOK, &ResponseData{
  44. Code: code,
  45. Msg: msg,
  46. Body: nil,
  47. })
  48. }
  49. // Response success
  50. func ResponseSuccess(c *gin.Context, data interface{}) {
  51. c.JSON(http.StatusOK, &ResponseData{
  52. Code: CodeSuccess,
  53. Msg: CodeSuccess.Msg(),
  54. Body: data,
  55. })
  56. }
  57. // Response {code, msg, body}
  58. func ResponseNormal(c *gin.Context, code ResCode, msg interface{}, body interface{}) {
  59. c.JSON(http.StatusOK, &ResponseData{
  60. Code: code,
  61. Msg: msg,
  62. Body: body,
  63. })
  64. }
  65. func ResponseBody(c *gin.Context, code ResCode, msg interface{}, body interface{}) {
  66. c.JSON(http.StatusOK, &ResponseBodyData{
  67. Code: code,
  68. Msg: msg,
  69. Body: body,
  70. })
  71. }
  72. func ResponseHandleBody(c *gin.Context, code int, msg interface{}, body interface{}) {
  73. c.JSON(http.StatusOK, &ResponseNormalBody{
  74. Code: code,
  75. Msg: msg,
  76. Body: body,
  77. })
  78. }
  79. func EmptyBodyObject() map[string]interface{} {
  80. return map[string]interface{}{}
  81. }
  82. func EmptyBodyArray() []interface{} {
  83. return []interface{}{}
  84. }