728x90
Spring Boot를 이용해서 REST API를 작성하는 도중 REST API의 문서에는 다음과 같이 return field를 원한다는 요구사항을 발견했습니다. 간단한 것이지만 이를 만족시킬 방법을 찾고 글을 남기려합니다.
x
access = AccessLevel.PROTECTED) (
public class TicketImageUrl {
private String ticketImageUrl;
}
다들 아시다시피 Java에서는 언더스코어
가 아닌 카멜케이스
를 이용하는 것이 관습입니다. 따라서 java에서 프로그래밍할 때에는 카멜케이스로 작성하되, 사용자의 요청에 따른 응답시에는 언더스코어를 이용한 키값을 가지는 데이터를 전달해줄 방법이 필요했습니다.
https://stackoverflow.com/questions/38635472/how-to-rename-json-objectsvariables-name-in-spring-boot
방법을 찾던 도중 위의 경로에서 제가 원하는 답변을 발견했습니다. 방법은 해당 이름 변경을 원하는 field의 getter메소드 위에@JsonProperty("rename name")
을 사용하는 것이었습니다.
하지만, 저는 lombok을 사용하고 있었기 때문에 getter() 메소드를 코드상에서 가지고 있지 않았습니다. 때문에 @JsonProperty
annotation의 target을 찾아본 결과, method 뿐만아니라 field
에도 적용이 가능한 것을 찾았습니다.
access = AccessLevel.PROTECTED) (
public class TicketImageUrl {
"image_path") (
private String ticketImageUrl;
}
위와 같이 field에 어노테이션을 부여한 뒤,
테스트를 해본결과 성공적으로 field명이 변경되어 반환된 것을 확인할 수 있었습니다.
'FrameWork > Spring Boot' 카테고리의 다른 글
SpringBoot - SpringBoot H2 연결방법(H2 웹콘솔) (4) | 2019.08.05 |
---|---|
Spring Boot - Self-Signed certificate(자체서명된 인증서)를 이용해 https 구축 (2) | 2019.08.03 |
SpringBoot - SpringBoot로 웹 개발하기 - 3(게시판 글작성 기능 추가) (2) | 2019.05.08 |
SpringBoot - SpringBoot로 웹 개발하기 - 2(API 만들기 , 테스트) (0) | 2019.05.02 |
SpringBoot - SpringBoot로 웹 개발하기 - 1(프로젝트 생성) (0) | 2019.05.02 |