Spring에서 API의 응답을 일반적인 JSON 형식이 아니라 XML 형식으로 응답하는 방법에 대해 정리합니다.
1. build.gradle에 jackson-dataformat-xml 라이브러리를 추가합니다.
https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-xml
를 참고하여 현재 프로젝트의 의존성에 맞는 버전으로 추가합니다.
implementation (group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-xml', version: '2.13.3')
2. JacksonConfig 클래스를 추가합니다.
@Configuration
public class JacksonConfig {
@Bean
public ObjectMapper xmlObejctMapper() {
return new XmlMapper();
}
}
3. WebMvcConfig 클래스를 추가합니다.
@Configuration
@EnableWebMvc
public class WebMvcConfig implements WebMvcConfigurer {
@Autowired
private ObjectMapper xmlObjectMapper;
@Overriede
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(new MappingJackson2xmlHttpMessageConverter(xmlObjectMapper));
}
}
4. 응답 데이터 객체를 생성합니다.
@Data
@AllArgsConstructor
@JacksonXmlRootElement(localName = "Value")
public class Person {
@JacksonXmlProperty(localName = "Name") private String name;
@JacksonXmlProperty(localName = "Age") private int age;
}
5. Controller에 매핑 함수를 작성합니다.
@GetMapping(value = "/person", produces = MediaType.APPLICATION_XML_VALUE)
public Person getPerson() {
return new Person("James", 30);
}
'Springboot' 카테고리의 다른 글
[Spring, JPA] PK의 auto_increment가 범위를 벗어날 경우 (0) | 2020.05.18 |
---|---|
Jsoup으로 크롤링하기 (0) | 2020.04.12 |
Spring - @Valid @Requestbody Collection 유효성 검사 하는 법 (0) | 2020.03.30 |
Spring Validation Annotation 총정리 (0) | 2020.01.14 |
HTTP Method - PUT, PATCH 차이점 (0) | 2019.10.22 |
댓글