response.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. if len(data) > 0 {
  23. responseData = data[0]
  24. }
  25. result := g.Map{
  26. "code": code,
  27. "msg": msg,
  28. "data": responseData,
  29. }
  30. r.SetParam("apiReturnRes", result)
  31. r.Response.WriteJson(result)
  32. }
  33. //成功返回JSON
  34. func SusJson(isExit bool, r *ghttp.Request, msg string, data ...interface{}) {
  35. if isExit {
  36. JsonExit(r, SuccessCode, msg, data...)
  37. }
  38. RJson(r, SuccessCode, msg, data...)
  39. }
  40. //失败返回JSON
  41. func FailJson(isExit bool, r *ghttp.Request, msg string, data ...interface{}) {
  42. if isExit {
  43. JsonExit(r, ErrorCode, msg, data...)
  44. }
  45. RJson(r, ErrorCode, msg, data...)
  46. }