콘텐츠 협상 알아보기 - XML

Soo·2024년 3월 25일

동일한 Resource - 동일한 URI

  • 예를 들어 /users 라는 URI가 있다고 할때 JSON으로 응답을 할 수도 있고, XML로 응답을 할수도 있습니다.
  • 또는 다른 언어로 된 응답을 기대할 수도 있습니다. 한국어, 영어, 일본어 등등

이렇게 하나의 URI를 가지고 여러 언어, 여러 형식으로 응답을 받을 수 있기 때문에 사용자는 자신이 원하는 형식이나, 언어를 제공자에게 알려야합니다.

어떻게 알릴까요? 바로 콘텐츠 협상을 통해서 가능합니다.

종류

  • Accept header : application/xml, application/json
  • Accept-Language header(ko, en, ja)

먼저 Accept에 대해 알아보겠습니다. 리소스에 대해 XML 표현을 추가해보겠습니다.

Accept

클라이언트가 서버에게 특정한 미디어 타입(예: JSON, XML 등)을 받아들일 수 있는지를 나타내는 HTTP 헤더입니다.

Pom.xml

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

서버를 재시작하고 Swagger-ui를 통해 GET /user를 실행하면 기본적으로 JSON으로 응답을 합니다.

이번에는 Accept header를 application/xml로 요청해보겠습니다.

사용자가 요청한 대로 데이터형식을 맞춰서 응답을 해줍니다.

0개의 댓글