2016-10-17 2 views
2

항상 생산을 사용하고 @RequestMapping에서 소모합니다.REST에서 헤더 허용

게시 요청에서 @RequestMapping의 주소가 headers = "Accept=application/json" 인 것을 발견했습니다. 내 질문에이 일이 실제로 무엇을하고 있습니까? 우리가 그걸 필요로합니까?

답변

0

생산물과 소비량은 백엔드 방법이 생산하고 소비하는 데이터의 종류를 선언합니다. Accept는 서버에 원하는 콘텐츠 유형을 알려주는 클라이언트 측 헤더입니다.

0

@RequestMapping의 첫 번째 버전에서는 producesconsumes 속성을 사용할 수 없었습니다 (스프링 3.1에서 추가됨). 명시 적으로 Accept 헤더를 지정하는 것은 Spring이 특정 헤더를 추가하기 전에 필요한 접근 방식이었습니다.

0

이 헤더는 클라이언트가 수신하기를 기대하는 데이터 형식을 나타냅니다. 예상 헤더를 종단의 headers (예 : application/json)의 값으로 설정하면 의미 상으로는 produces 속성에 설정하는 것과 동일하지만 produces은 더 똑똑합니다. XML과 JSON 같은 여러 데이터 유형을 생성 할 수 있다면 Spring은 자동으로 올바른 Producer를 선택하여받은 값과 관련된 응답을 생성합니다.

0

REST에서 특정 정보는 헤더 등을 통해 전달됩니다. 세션 ID, 매개 변수 등이 있습니다. Accept, content-type과 같은 키워드는 헤더의 내용을 특정 형식으로 제한합니다. Accept request-header 필드를 사용하여 응답에 사용할 수있는 특정 미디어 유형을 지정할 수 있습니다. Accept 헤더는 요청이 xml, json, media type 등과 같은 원하는 유형의 작은 집합으로 특별히 제한된다는 것을 나타내는 데 사용할 수 있습니다. RequestMapping 주석은 하나 이상의 URI 값이 작동하는 동적 URI를 처리하는 데 사용될 수 있습니다 매개 변수로. 의심의 여지가 없어지기를 바랍니다.

관련 문제