복붙노트

[SPRING] Spring (REST)에서 REST 응답을 어떻게 장식 할 수 있습니까?

SPRING

Spring (REST)에서 REST 응답을 어떻게 장식 할 수 있습니까?

JSON 응답으로 인코딩 된 다양한 객체를 반환하는 스프링 부팅 응용 프로그램이 있는데이를 포스트 프로세스로 처리하여 특정 수퍼 클래스에 정보를 추가하고 싶습니다.

Jackson과 JSON으로 인코딩되기 전에 내 REST 엔드 포인트에서 오브젝트 응답을 필터링, 가로 채기 등의 방법으로 처리 할 수 ​​있습니까?

필터는 HttpServlet {Request, Response} 수준에서 작동하기 때문에 작동하지 않습니다.

해결법

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

    1.나는 ResponseBodyAdvice가 당신의 친구라고 생각합니다. 기본적으로 :

    나는 ResponseBodyAdvice가 당신의 친구라고 생각합니다. 기본적으로 :

    여기에 반환 된 문자열을 모두 가로 채고 대문자로 만듭니다.

    @ControllerAdvice
    public class MyResponseBodyAdvisor implements ResponseBodyAdvice<String> {
        @Override
        public boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) {
            return returnType.getParameterType().equals(String.class);
        }
    
        @Override
        public String beforeBodyWrite(String body, MethodParameter returnType, MediaType selectedContentType, Class<? extends HttpMessageConverter<?>> selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {
            return body.toUpperCase();
        }
    }
    
  2. from https://stackoverflow.com/questions/34982742/how-can-i-decorate-the-rest-response-in-spring-boot by cc-by-sa and MIT license