• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

consumes, produces 속성 질문

24.01.07 14:39 작성 조회수 185

1

consumes 속성은 클라이언트가 요청한 헤더를 제한하는 거고, produces 속성은 클라이언트에게 응답할 만들어진 응답의 헤더를 제한하는 것인가요?

답변 1

답변을 작성해보세요.

4

y2gcoder님의 프로필

y2gcoder

2024.01.07

안녕하세요. 재영님, 공식 서포터즈 y2gcoder입니다.

생각하신 게 대체로 맞습니다! 좀 더 부연설명을 하자면

  • consumes은 Content-Type 과 관련된 속성으로 컨트롤러가 처리할 수 있는 요청 타입을 제한하는 것입니다. 그래서 consumes="application/json" 이라면 해당 애노테이션이 붙은 컨트롤러의 메서드는 content-type이 "application/json" 인 요청만 처리할 수 있습니다.

  • produces 는 응답의 Content-Type과 관련되어있고, 클라이언트의 Accept와 관련이 있습니다. 클라이언트가 보낸 Accept 헤더는 클라이언트 입장에서 자신이 받을 수 있는 content-type을 서버로 전달해준 것이라고 생각할 수 있습니다. produces는 클라이언트 요청 헤더의 accept를 체크해서 맞지 않으면 에러를 뱉습니다. 예를 들어 produces="application/json" 이라면 클라이언트의 요청 헤더 중 accept="application/json"인지를 체크합니다.

감사합니다.

재영님의 프로필

재영

질문자

2024.01.08

친절한 답변 감사드립니다 :)