response.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package response
  2. import (
  3. "github.com/gogf/gf/frame/g"
  4. "github.com/gogf/gf/net/ghttp"
  5. )
  6. const (
  7. SuccessCode int = 0
  8. ErrorCode int = -1
  9. )
  10. // 返回JSON数据并退出当前HTTP执行函数。
  11. func JsonExit(r *ghttp.Request, code int, msg string, data ...interface{}) {
  12. RJson(r, code, msg, data...)
  13. r.Exit()
  14. }
  15. // 标准返回结果数据结构封装。
  16. // 返回固定数据结构的JSON:
  17. // code: 状态码(200:成功,302跳转,和http请求状态码一至);
  18. // msg: 请求结果信息;
  19. // data: 请求结果,根据不同接口返回结果的数据结构不同;
  20. func RJson(r *ghttp.Request, code int, msg string, data ...interface{}) {
  21. responseData := interface{}(nil)
  22. responseData = data
  23. r.Response.WriteJson(g.Map{
  24. "code": code,
  25. "msg": msg,
  26. "data": responseData,
  27. })
  28. }
  29. //成功返回JSON
  30. func SusJson(isExit bool, r *ghttp.Request, msg string, data ...interface{}) {
  31. if isExit {
  32. JsonExit(r, SuccessCode, msg, data...)
  33. }
  34. RJson(r, SuccessCode, msg, data...)
  35. }
  36. //失败返回JSON
  37. func FailJson(isExit bool, r *ghttp.Request, msg string, data ...interface{}) {
  38. if isExit {
  39. JsonExit(r, ErrorCode, msg, data...)
  40. }
  41. RJson(r, ErrorCode, msg, data...)
  42. }