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