복붙노트

[SPRING] Spring MVC에서 커스텀 Accept 헤더 관리하기

SPRING

Spring MVC에서 커스텀 Accept 헤더 관리하기

Spring MVC를 사용하여 개발 된 RESTful 웹 서비스가 있고 구성없이 @ResponseBody에 JSON에 직렬화 된 컨트롤러 메서드가있는 객체를 반환 할 수 있습니다. 이는 요청의 Accept 헤더가 설정되지 않았거나 application / json 인 즉시 작동합니다.

GitHub API 사양에서 영감을 얻었으므로 GitHub처럼 application / vnd.myservice + json과 같이 내 API에 사용자 지정 mime 형식을 구현하고 싶습니다. 그렇지만 Spring MVC에 컨트롤러가이 MIME 타입을 제공 할 수 있고 JSON (즉, org.springframework.web.servlet.view.json.MappingJacksonJsonView 클래스)에 의해 직렬화되어야 함을 알릴 필요가 있습니다.

어떤 생각을하는 방법?

해결법

  1. ==============================

    1.org.springframework.http.converter.json.MappingJacksonHttpMessageConverter로 수행중인 작업을 정확히 수행 할 수 있습니다. 최종 클래스가 아니기 때문에이 방법으로 변환기를 파생시킬 수 있습니다.

    org.springframework.http.converter.json.MappingJacksonHttpMessageConverter로 수행중인 작업을 정확히 수행 할 수 있습니다. 최종 클래스가 아니기 때문에이 방법으로 변환기를 파생시킬 수 있습니다.

    class MyCustomVndConverter extends MappingJacksonHttpMessageConverter{
        public MyCustomVndConverter (){
            super(MediaType.valueOf("application/vnd.myservice+json"));
        }
    }
    

    이 방법으로 변환기를 등록하십시오.

    <mvc:annotation-driven> 
       <mvc:message-converters register-defaults="true">
           <bean class="MyCustomVndConverter "/>
       </mvc:message-converters>
    </mvc:annotation-driven>
    

    이러한 변경 사항과 함께 작동해야합니다.

  2. from https://stackoverflow.com/questions/12027668/managing-custom-acccept-header-in-spring-mvc by cc-by-sa and MIT license