쌓고 쌓다
API 응답 포맷 만들기 본문
@ResponseBody 어노테이션 또는 @RestController 어노테이션을 사용하여 객체를 반환하면
HttpMessageConverter가 JSON으로 바꿔 응답을 해준다.
@GetMapping("/testAPI")
public Inquiry test() {
Inquiry inquiry = new Inquiry();
inquiry.setId(777L);
inquiry.setTitle("제목");
inquiry.setContent("내용");
inquiry.setRegDate(LocalDateTime.now());
inquiry.setName("작성자");
return inquiry;
}
ResponseEntity를 사용하여 응답을 만들 수 있지만
예외가 발생했을때 응답의 형태가 달라질 수 있고, 응답 body로 plain/text가 전달된다.
그래서 API 응답 포맷을 만들어서 사용해보자.
status : 성공(success), 실패(fail), 예외(error)
data : 성공일 경우 데이터를 갖는다. 오류(fail)일 경우 유효성 관련 문제로 검증 실패의 정보를 담는다.
message : 메시지를 담을 수 있다.
예외나 에러에 대한 응답은 추후에 만들어보자.
성공적인 응답만 볼 예정이다.
1) 성공 응답
{
"status": "success",
"data": [
{
"id": 11,
"name": "name!",
"title": "title!",
"content": "content!",
"regDate": "2023-11-20T14:04:14"
}
],
"message": "성공했다."
}
이런 응답을 내보내게 위해 아래의 클래스를 작성할 수 있다.
@Getter
@Setter
public class ApiResponse<T> {
public static final String SUCCESS_STATUS = "success";
public static final String FAIL_STATUS = "fail";
public static final String ERROR_STATUS = "error";
private String status;
private T data;
private String message;
}
제네릭이 뭐야? 왜 Object를 쓰면 그만 아니야? 라는 생각에 아래의 포스트를 작성했었다.
https://non-stop.tistory.com/630
빨리 예외처리API도 만들어보고싶다.!
'프로그래밍 > spring' 카테고리의 다른 글
@RequestPart로 JSON과 파일 함께 처리하기 with Multipart (1) | 2023.12.29 |
---|---|
API 오류 처리하는법 @ExceptionHandler (0) | 2023.12.04 |
@JsonIgnore은 직렬화, 역직렬화 모두 무시 (0) | 2023.11.29 |
비회원이 댓글 작성 API POST 요청시 에러 메시지 띄우기 (0) | 2023.10.14 |
서블릿 컨테이너의 예외 처리, 오류 페이지 (0) | 2023.10.12 |
Comments