[REST API] content negotiation - xml 지원 구현하기

민지·2024년 3월 14일
0

REST API - Spring Boot

목록 보기
15/27

Content Negotiation이란?

localhost:8080/users URL에 대해, 소비자들은 JSON 형식의 응답을 원할수도, 혹은 xml 형식의 응답을 원할수도 있다. 또한, 소비자는 자국의 언어에 맞는 response를 원할 수도 있다.

그렇다면 소비자는 어떻게 REST API 제공자에게 그들이 원하는 방식을 알릴 수 있을까? -> Content Negotiation

API 소비자들은 Accept header를 다음과 같은 상황에서 사용할 수 있다.

  • request를 전송할 때, Accept header를 application/xml 값으로 생성해, xml 응답을 원한다고 입력할 수 있다.

혹은, API 소비자들은 Accept-Language header를 다음과 같은 상황에서 사용할 수 있다.

  • Accept-Lanuage header에는 영어, 네덜란드어, 프랑스어 등을 원한다고 입력할 수 있다.

여기에서는 Accept header에 대해 다뤄보자!

Accept header - xml 지원하는 코드 구현 과정

pom.xml modified

<dependency>
	<groupId>com.fasterxml.jackson.dataformat</groupId>
	<artifactId>jackson-dataformat-xml</artifactId>
</dependency>

Accept header를 다룬 실행결과

talend api test에서,


따라서, Swagger와 마찬가지로, data format 관련 의존성만 추가하면, 사용자가 application/xml 값을 가진 Accept 헤더를 추가할 때마다, XML respone를 받을 수 있음을 알 수 있었다!




참고 및 출처
이 시리즈는 Udemy 강의의 내용을 정리한 것입니다.
https://www.udemy.com/course/spring-boot-and-spring-framework-korean/

profile
배운 내용을 바로바로 기록하자!

0개의 댓글