web-dev-qa-db-ja.com

ヘッダー値:application / vnd.api + json

誰かが以下の違いを説明できますか?

application/vnd.api+json

そして

application/json
77
RockNinja

メディアタイプapplication/vnd.api+jsonはJSON APIを指します。あなたはそれについて読むことができます 詳細はこちら

要するに、JSON APIは意見があり正当な理由があります:

…クライアントがリソースの取得または変更を要求する方法、およびサーバーがそれらの要求に応答する方法の仕様。

72

1つは、API固有のメディアタイプです。ベンダープレフィックス(vnd.)は、このベンダーに対してカスタムであることを示します。 +jsonは、JSONとして解析できることを示しますが、メディアタイプshouldはJSONの上にさらなるセマンティクスを定義します。

2番目は、コンテンツがJSONであることを意味します。ただし、JSON値の意味が定義されていないため、これは一般的にあまり役に立ちません。

これについて読むのに適した出発点は Wikipedia ですが、詳細については、そのページの対応するRFCへのリンクをいつでも参照できます。

50
rmhartog

よくわからない場合は、application/jsonを使用してください。返されるデータのみを要求する汎用MIMEタイプです 整形式JSON


application/vnd.api+json MIMEタイプは、(紛らわしい名前の) "JSON API" プロトコルを使用した通信用に予約されています。

このコンテキストの「JSON API」は、notHTTP(およびJSON)に基づくanyAPIを意味します。これも完全に指定されたAPIではありません-むしろ、クライアントが相互に関連するエンティティを取得および変更できるAPIを構築するためのframeworkです。たとえば、ブログアプリケーションは、「JSON API」仕様に準拠したAPIを実装できます。これにより、1つのHTTPリクエストで、各記事のメタデータとコメントとともに、特定の著者による最新の10件の記事を取得できます。

仕様では、特に以下を定義しています。

  • リクエストを形成する特定の方法(つまり、どのURLパラメーターがソートとページネーション、および出力に含まれるデータを制御するか);
  • 応答内のJSONドキュメントの特定の構造。たとえば、

    ドキュメントには、次のトップレベルメンバーの少なくとも1つが含まれている必要があります。

    • data:ドキュメントの「プライマリデータ」
    • errors:エラーオブジェクトの配列
    • meta:非標準のメタ情報を含むメタオブジェクト。

    メンバーdataerrorsは、同じドキュメントに共存してはいけません。

26
Nickolay

MIME(Multipurpose Internet Mail Extensions)type(または)メディアタイプは、インターネット経由で転送されるドキュメントの性質と形式を示す標準化された方法です。 IETF RFC 6838 で標準化されています。 Internet Assigned Numbers Authority(IANA)は、すべての公式MIMEタイプの追跡を担当する公式機関です。

JSON API で使用されるメディアタイプは application/vnd.api + json であり、IANAに適切に登録されています。

API + JSONメディアタイプは、JSONを提供するさまざまなAPI間の相互運用性のためです。

「厚いJavaScript」クライアントとそのニーズを考慮して作成されましたが、特定のクライアントではありません。そのため、vnd(ベンダー)のプレフィックスが付きます。

JSON APIにさらにポイントを追加する:

  • JSON APIは、リクエストとレスポンスのあり方に関するAPI仕様を定義する仕様です。
  • 明確に定義された構造を持つリソースを作成できます(リソース-関係、リンクなど)。
  • REST AP​​Iが CRUD 操作に対してどのように反応するかを指定します。
  • クライアントが応答をキャッシュできるようにします。
3
rm -rf star

以下のヘッダーをセットアップする必要がある場合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);

それが役に立てば幸い!!

0
Mahesh Yadav