Request
{ "hostName":"이름", "hostEmail":"lee@gamil.com", "hostPhoneNumber":"01022223333" }
Response(Body)
HTTP/1.1 201 Created Content-Type: application/json;charset=UTF-8 Content-Length: 82 { "statusCode" : 201, "data" : 1, "serverDatetime" : "2021-11-17 15:16:52" }
단일 Long값만 내려주는 경우에는 ApiResponse를 이용해서 내려준다. (아래 예시)
@Getter @Setter @NoArgsConstructor public class ApiResponse<T> { private int statusCode; private T data; @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Seoul") private LocalDateTime serverDatetime; public ApiResponse(final int statusCode, final T data) { this.statusCode = statusCode; this.data = data; this.serverDatetime = LocalDateTime.now(); } public static <T> ApiResponse<T> ok(final T data) { return new ApiResponse<>(200, data); } public static <T> ApiResponse<T> created(final T data) { return new ApiResponse<>(201, data); } public static <T> ApiResponse<T> fail(final int statusCode, final T errData) { return new ApiResponse<>(statusCode, errData); } }
@AllArgsConstructor @RestController @RequestMapping("/api/v1") public class HostController { private final HostService hostService; @PostMapping("/hosts") @ResponseStatus(code = HttpStatus.CREATED) public ResponseEntity<ApiResponse<Long>> saveHost(@RequestBody final HostCreateRequestDto hostCreateRequestDto) { return new ResponseEntity<>(ApiResponse.created(hostService.createHost(hostCreateRequestDto)), HttpStatus.CREATED); } }