누군가 다음의 차이점을 설명 할 수 있습니까?
application/vnd.api+json
과
application/json
답변
미디어 유형 application/vnd.api+json
은 JSON API를 나타냅니다. 여기에서 자세히 읽을 수 있습니다 .
요컨대, JSON API는 독단적이고 합리적입니다.
… 클라이언트가 리소스를 가져 오거나 수정하도록 요청하는 방법과 서버가 이러한 요청에 응답해야하는 방법에 대한 사양.
답변
첫 번째는 API 특정 미디어 유형입니다. 공급 업체 접두사 ( vnd.
)는이 공급 업체에 대한 사용자 지정임을 나타냅니다. 는 +json
JSON으로 구문 분석 할 수 있지만 미디어 유형 은 JSON 위에 추가 의미를 정의 해야 함을 나타냅니다 .
두 번째는 콘텐츠가 JSON임을 의미합니다. 일반적으로 이것은 JSON 값의 의미를 정의하지 않기 때문에 그다지 유용하지 않습니다.
이에 대해 읽기에 좋은 출발점은 Wikipedia 에 있지만 자세한 내용은 해당 페이지 의 해당 RFC에 대한 링크를 따라갈 수 있습니다 .
답변
확실하지 않은 경우 application/json
반환하는 데이터 만 올바른 형식의 JSON 이어야하는 일반 MIME 유형을 사용하십시오 .
application/vnd.api+json
MIME 타입은 (혼동 이름)을 사용하여 통신을 위해 예약되어 있습니다 “JSON의 API” 프로토콜.
이 컨텍스트에서 “JSON API”는 HTTP 및 JSON을 기반으로 하는 API를 의미 하지 않습니다 . 완전히 지정된 API도 아닙니다. 오히려 클라이언트가 상호 관련된 엔티티를 가져오고 수정할 수 있도록하는 API를 빌드하기위한 프레임 워크 입니다. 예를 들어 블로그 애플리케이션은 “JSON API”사양을 준수하는 API를 구현할 수 있습니다.이 API를 사용하면 단일 HTTP 요청에서 각 기사에 대한 메타 데이터 및 댓글과 함께 지정된 작성자의 마지막 10 개 기사를 가져올 수 있습니다.
사양은 특히 다음을 정의합니다.
- 요청이 형성되어야하는 특정 방식 (즉, 정렬 및 페이지 매김을 제어하는 URL 매개 변수 및 출력에 포함 된 데이터)
- 응답에있는 JSON 문서의 특정 구조. 예 :
문서에는 다음 최상위 멤버 중 하나 이상이 포함되어야합니다.
data
: 문서의 “기본 데이터”errors
: 오류 객체의 배열meta
: 비표준 메타 정보를 포함하는 메타 개체입니다.
구성원
data
과errors
동일한 문서에 공존해서는 안됩니다.
답변
MIME (Multipurpose Internet Mail Extensions) 형식 (또는) 미디어 유형은 인터넷을 통해 전송 된 문서의 성격과 형식을 표시하는 표준화 된 방법입니다. IETF RFC 6838 에서 표준화되었습니다 . 인터넷 할당 번호 관리 기관 (IANA)는 모든 공식 MIME 타입의 트랙을 유지할 책임이 공식 기관이다.
JSON API에서 사용하는 미디어 유형 은 application / vnd.api + json 이며 IANA에 올바르게 등록되었습니다.
API + JSON 미디어 유형은 JSON을 제공하는 서로 다른 API 간의 상호 운용성을위한 것입니다.
“두꺼운 JavaScript”클라이언트와 그들의 요구를 고려하여 만들어졌지만 그들에게 특정한 것은 아닙니다. 따라서 vnd
(공급 업체)로 시작합니다.
JSON API에 대한 몇 가지 추가 사항 :
- JSON API는 요청 및 응답 방법에 대한 API 사양을 정의하는 사양입니다.
- 잘 정의 된 구조 (예 : 리소스-관계 및 링크 등)를 만들 수 있습니다.
- REST API가 CRUD 작업에 반응하는 방식을 지정합니다 .
- 클라이언트가 응답을 캐시 할 수 있습니다.
답변
아래 헤더 application / vnd.hmrc.1.0 + json 을 설정해야하는 경우
그럼 당신은 함께 가야합니다
Accept: application/vnd.hmrc.1.0+json
CUrl을 사용하여 스크립트를 다음과 같이 실행할 수 있습니다.
$url="https://test-api.service.hmrc.gov.uk/hello/world";
$ch = curl_init();
$curlConfig = array(
CURLOPT_URL => $url,
CURLOPT_HTTPHEADER => array('Accept: application/vnd.hmrc.1.0+json')
);
curl_setopt_array($ch, $curlConfig);
$result = curl_exec($ch);
curl_close($ch);
희망이 있습니다 !!