Encapsulated content
Response result encapsulation is to encapsulate the response data returned by the backend service in a unified format. This format usually includes key information such as status code, status information (or message), and return data.
- Status code: indicates the processing result of the request, such as success, failure, specific error, etc. The status code is usually a set of predefined integers or enum values.
- Status information/message: A text description corresponding to the status code, used to provide more information about the request processing results.
- Return Data: The result data processed by the actual business, and its type may vary by API.
In addition, some encapsulations will also contain additional information such as timestamps, request IDs, etc. to facilitate log tracking and problem troubleshooting.
Package example
1、Result
package ; import ; import ; import ; import ; /** * Unified API response result encapsulation */ @Data @Builder @AllArgsConstructor @NoArgsConstructor public class Result<T> { private int code; private String message; private T data; public Result<T> setCode(ResultCode resultCode) { = ; = ; return this; } public Result<T> setMessage(String message) { = message; return this; } public Result<T> setData(T data) { = data; return this; } }
2、ResultCode
package ; /** * Response code enumeration */ public enum ResultCode { // Here different response codes can be set according to multiple scenarios for the front-end to judge the problem and explain it SUCCESS(1,"SUCCESS"), FAIL(400,"FAIL"), NOT_FOUND(401,"interface not found"), ERROR(500,"System Exception!"); public int code; public String message; ResultCode(int code, String message){ = code; = message; } }
3、ResultGenerator
package ; /** * Response result generation */ public class ResultGenerator { public static Result<?> genSuccessResult(){ return new Result<>().setCode(); } public static Result<?> genSuccessResult(Object data){ return new Result<>().setCode().setData(data); } public static Result<?> genFailResult(String message){ return new Result<>().setCode().setMessage(message); } public static Result<?> genSpecialResult(ResultCode resultCode, String message){ return new Result<>().setCode(resultCode).setMessage(message); } }
4、TestController
package ; import ; import ; import ; import ; import ; import ; import ; import ; import ; @RestController @RequestMapping("/test") public class TestController { @Autowired private TestService testService; @GetMapping("/select") public Result<?> selectUserByPage( @Param("pageSize") Integer pageSize, @Param("pageNumber") Integer pageNumber){ // Generate results return ((pageSize, pageNumber)); } }
5. Generate results
{
"code": 1,
"message": "SUCCESS",
"data": "2024-07-19"
}
The above is a detailed explanation of the examples of SpringBoot Unified API response result encapsulation. For more information about SpringBoot Unified API response results, please pay attention to my other related articles!