Http ResponseEntity 返回包装
public class ResponseEntityFactory { private enum ResponseStatus { SUCCESS, FAIL, ERROR } public static ResponseEntity success (String message, Object data) { return getResponseEntity(HttpStatus.OK, ResponseStatus.SUCCESS, message, data, null); } /* ADDITIONAL SUCCESS, FAIL, ERROR FACTORY METHODS */ private static ResponseEntity getResponseEntity(HttpStatus httpStatus, ResponseStatus responseStatus, String message, Object data, HttpHeaders headers) { if (httpStatus == null) throw new IllegalArgumentException("HttpStatus cannot be null"); if (responseStatus == null) throw new IllegalArgumentException("ResponseStatus cannot be null"); JsonResponse jsonResponse = new JsonResponse(responseStatus, message, data); return new ResponseEntity(jsonResponse, headers, httpStatus); } private static class JsonResponse { private ResponseStatus status; private String message; private Object data; public JsonResponse(ResponseStatus status, String message, Object data) { if (status == null) throw new IllegalArgumentException("ResponseStatus cannot be null"); this.status = status; this.message = message; this.data = data; } public ResponseStatus getStatus() { return status; } public void setStatus(ResponseStatus status) { this.status = status; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public Object getData() { return data; } public void setData(Object data) { this.data = data; } } }
示例控制器。java
@Controller
@RequestMapping(value = "/example")
public class ExampleController {
@Autowire
private UserService userService;
@RequestMapping(method = RequestMethod.GET)
public ResponseEntity getUsers() {
List<User> users = userService.getAllUsers();
return AjaxResponseFactory.success("Found users", userList);
}
@RequestMapping(value = "/active/{id}" method = RequestMethod.GET)
public ResponseEntity isUserActive(long userId) {
boolean = userService.isUserActive(userId);
return AjaxResponseFactory.success(null, boolean);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)