柯桥增值式服务
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

124 řádky
2.8KB

  1. package com.ningdatech.kqapi.common.model;
  2. import lombok.Data;
  3. import lombok.NoArgsConstructor;
  4. import java.io.Serializable;
  5. /**
  6. * <p>
  7. * ApiResponse - 统一的接口返回值封装
  8. * </p>
  9. *
  10. * @author WendyYang
  11. * @since 14:29 2022/9/29
  12. */
  13. @Data
  14. @NoArgsConstructor
  15. public class ApiResponse<T> implements Serializable {
  16. private static final long serialVersionUID = 532384723325394156L;
  17. public static final int SUCCESS_CODE = 200;
  18. public static final String SUCCESS_MSG = "success";
  19. public static final int ERROR_CODE = 500;
  20. public static final String ERROR_MSG = "Internal server error";
  21. /**
  22. * 状态码
  23. */
  24. private Integer code;
  25. /**
  26. * 返回内容
  27. */
  28. private String message;
  29. /**
  30. * 返回数据
  31. */
  32. private T data;
  33. /**
  34. * 全参构造函数
  35. *
  36. * @param code 状态码
  37. * @param message 返回内容
  38. * @param data 返回数据
  39. */
  40. private ApiResponse(Integer code, String message, T data) {
  41. this.code = code;
  42. this.message = message;
  43. this.data = data;
  44. }
  45. /**
  46. * 构造一个自定义的API返回
  47. *
  48. * @param code 状态码
  49. * @param message 返回内容
  50. * @param data 返回数据
  51. * @return ApiResponse
  52. */
  53. public static <T> ApiResponse<T> of(Integer code, String message, T data) {
  54. return new ApiResponse<T>(code, message, data);
  55. }
  56. public static <T> ApiResponse<T> of(Integer code, String message) {
  57. return of(code, message, null);
  58. }
  59. /**
  60. * 构造一个成功且不带数据的API返回
  61. *
  62. * @return ApiResponse
  63. */
  64. public static <T> ApiResponse<T> ofSuccess() {
  65. return ofSuccess(null);
  66. }
  67. /**
  68. * 构造一个成功且带数据的API返回
  69. *
  70. * @param data 返回数据
  71. * @return ApiResponse
  72. */
  73. public static <T> ApiResponse<T> ofSuccess(T data) {
  74. return ofStatus(Status.OK, data);
  75. }
  76. /**
  77. * 构造一个成功且自定义消息的API返回
  78. *
  79. * @param message 返回内容
  80. * @return ApiResponse
  81. */
  82. public static <T> ApiResponse<T> ofMessage(String message) {
  83. return of(Status.OK.getCode(), message, null);
  84. }
  85. /**
  86. * 构造一个有状态的API返回
  87. *
  88. * @param status 状态 {@link Status}
  89. * @return ApiResponse
  90. */
  91. public static <T> ApiResponse<T> ofStatus(ApiStatus status) {
  92. return ofStatus(status, null);
  93. }
  94. /**
  95. * 构造一个有状态且带数据的API返回
  96. *
  97. * @param status 状态 {@link Status}
  98. * @param data 返回数据
  99. * @return ApiResponse
  100. */
  101. public static <T> ApiResponse<T> ofStatus(ApiStatus status, T data) {
  102. return of(status.getCode(), status.getReasonPhrase(), data);
  103. }
  104. }