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);
    }
}
posted @ 2023-03-07 15:27  曹丽是我女朋友。  阅读(19)  评论(0编辑  收藏  举报