response.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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 = 200
  8. ErrorCode int = 400
  9. AccessDeniedCode int = 403
  10. NotFoundCode int = 404
  11. NotAcceptableCode int = 406
  12. ServerErrorCode int = 500
  13. RedirectCode int = 302
  14. )
  15. // 返回JSON数据并退出当前HTTP执行函数。
  16. func JsonExit(r *ghttp.Request, code int, msg string, data ...interface{}) {
  17. RJson(r, code, msg, data...)
  18. r.Exit()
  19. }
  20. // 标准返回结果数据结构封装。
  21. // 返回固定数据结构的JSON:
  22. // code: 状态码(200:成功,302跳转,和http请求状态码一至);
  23. // msg: 请求结果信息;
  24. // data: 请求结果,根据不同接口返回结果的数据结构不同;
  25. func RJson(r *ghttp.Request, code int, msg string, data ...interface{}) {
  26. responseData := interface{}(nil)
  27. responseData = data
  28. r.Response.WriteJson(g.Map{
  29. "code": code,
  30. "msg": msg,
  31. "data": responseData,
  32. })
  33. }
  34. //成功返回JSON
  35. func SusJson(isExit bool, r *ghttp.Request, msg string, data ...interface{}) {
  36. if isExit {
  37. JsonExit(r, SuccessCode, msg, data...)
  38. }
  39. RJson(r, SuccessCode, msg, data...)
  40. }