해결된 질문
작성
·
292
답변 1
4
안녕하세요. 재영님, 공식 서포터즈 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"인지를 체크합니다.
감사합니다.
친절한 답변 감사드립니다 :)