Может кто-нибудь объяснить разницу между:
application/vnd.api+json
а также
application/json
Может кто-нибудь объяснить разницу между:
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
- это универсальный MIME-тип, который требует, чтобы возвращаемые данные были только правильно сформированным JSON.
MIME-тип application/vnd.api+json
зарезервирован для связи по протоколу JSON API (со странным названием).
"JSON API" в данном контексте не означает никакого API, основанного на HTTP и JSON. Это также не полностью определенный API - скорее, это платформа для создания API, которые позволяют клиенту извлекать и изменять взаимосвязанные объекты. Например, приложение блога может реализовать API, соответствующий спецификации "JSON API", который позволяет извлекать последние 10 статей данного автора с метаданными и комментариями для каждой статьи в одном HTTP-запросе.
Спецификация определяет, в частности:
Документ ДОЛЖЕН содержать хотя бы одного из следующих членов высшего уровня:
data
: документы "первичные данные"errors
: массив объектов ошибокmeta
: мета-объект, который содержит нестандартную мета-информацию.
data
иerrors
НЕ ДОЛЖНЫ сосуществовать в одном документе.
Многофункциональный тип почтовых расширений в Интернете (MIME) (или) тип носителя - это стандартизированный способ указания характера и формата документа, передаваемого через Интернет. Он стандартизирован в IETF RFC 6838. Управление по присвоению номеров в Интернете (IANA) является официальным органом, ответственным за отслеживание всех официальных типов MIME.
Тип носителя, используемый JSON API, - application/vnd.api + json, и он был надлежащим образом зарегистрирован в IANA.
Тип мультимедиа API + JSON предназначен для взаимодействия различных API, обслуживающих JSON.
Он был создан с учетом клиентов "толстого JavaScript" и их потребностей, но не является специфическим для них. Итак, с префиксом vnd
(поставщик).
Добавьте еще несколько моментов в JSON API:
Если вам нужно настроить нижеприведенный заголовок 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);
Надеюсь, поможет!!