response.go 1.2 KB

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