2014-11-19 3 views
2

REST API가 제공됩니다. Accept 헤더에서 설정할 수있는 미디어 유형을 배우고 싶습니다. 어떻게해야합니까?REST에서 허용되는 미디어 유형을 찾는 방법은 무엇입니까?

은 내가

GET http://some.api.com/ 
Accept:flying/elephants 

임의의

을하고 올바른 가능한 매체 유형을 가진 몸으로 (406)에 대한 희망 할 수 알고있다.

더 좋은 방법이 있습니까? 이론적으로

답변

2

는, API는 HTTP OPTIONS

보통, API는

  1. 문서 중 하나를 지원 Accept -header 값의
  2. 특정 자원을 제공을 통해 콘텐츠 형식을 지원 나타낼 수 있습니다. 또한

가 (당신이 알고 하듯이), Accept -header 값이 보통이와 IANA defined MIME types

+0

흥미 롭다. OPTIONS를 통해 또는 특정 리소스를 통해 수행하는 모든 예를 알고 계십니까? –

1

한 가지 문제에 바인딩은 어떤 URI는 다른 미디어 유형으로 응답 할 수있는 API에 있습니다. API에서 다른 끝점을 사용하여 다른 콘텐츠 형식을 반환하는 것은 매우 일반적입니다.

지원을 검사하기 위해 여러 개의 와일드 카드 요청을 사용할 수 있습니다.

당신은 Accept: */* 시작할 수 다음 application/*text/**/json*/xml 등 당신이 아닌 완전한 목록을받을 것입니다,하지만 당신은 큰 사람과 선호하는 사람을 얻을 것입니다.

다른 이상한 경우가 있습니다. 예를 들어 OData를 사용하면 응답 형식을 정의하기 위해 $ 형식 매개 변수를 URL에 지정할 수 있습니다. 이것은 accept 헤더보다 우선합니다. 따라서 모든 형식은 자체 URI입니다.

API가 대체 링크 관계 (http://www.w3.org/TR/html5/links.html#rel-alternate)를 더 많이 사용하면 멋질 것입니다. 가장 적절하다고 생각합니다. 링크의 type 속성과 결합하면 검색하는 모든 자원의 모든 형식을 알 수 있습니다. 다시 말하지만 그것은 각각의 URI에 특정적일 것이다.

관련 문제