Nilai header: application / vnd.api + json

101

Adakah yang bisa menjelaskan perbedaan antara:

application/vnd.api+json

dan

application/json
RockNinja
sumber

Jawaban:

94

Jenis media application/vnd.api+jsonmengacu pada JSON API. Anda dapat membacanya dengan sangat detail di sini .

Singkatnya, JSON API adalah beropini dan beralasan baik:

… Spesifikasi tentang bagaimana klien harus meminta sumber daya diambil atau dimodifikasi, dan bagaimana server harus menanggapi permintaan tersebut.

Gordon McCreight
sumber
30
Akan lebih bagus jika kalimat tentang awalan vendor (`vnd.`) Dimasukkan dalam jawaban ini dari jawaban @rmhartog.
Vasif
Saya di sini secara khusus karena saya sedang mencari penjelasan vnd, yang sekarang saya tahu menjadi awalan vendor karena @Vasif. Hasil edit asli akan luar biasa.
Kamuela Franco
69

Yang pertama adalah jenis media khusus API. Awalan vendor ( vnd.) menunjukkan bahwa itu kustom untuk vendor ini. The +jsonmenunjukkan bahwa hal itu dapat diuraikan sebagai JSON, tapi jenis media harus mendefinisikan semantik lebih lanjut di atas JSON.

Yang kedua berarti isinya adalah JSON. Ini secara umum tidak terlalu berguna, karena tidak mendefinisikan apa arti nilai JSON.

Titik awal yang baik untuk membaca tentang ini adalah di Wikipedia , tetapi untuk lebih jelasnya Anda selalu dapat mengikuti tautan ke RFC yang sesuai di halaman itu .

rmhartog.dll
sumber
33

Jika Anda tidak yakin, gunakan application/json- jenis MIME generik yang hanya membutuhkan data yang Anda kembalikan menjadi JSON yang dibentuk dengan baik .


The application/vnd.api+jsontipe MIME disediakan untuk komunikasi dengan menggunakan (membingungkan bernama) "JSON API" protokol.

"JSON API" dalam konteks ini tidak berarti API apa pun yang berbasis HTTP dan JSON. Ini juga bukan API yang ditentukan sepenuhnya - melainkan kerangka kerja untuk membangun API yang memungkinkan klien mengambil dan memodifikasi entitas yang saling terkait. Misalnya, aplikasi blog bisa menerapkan API yang sesuai dengan spesifikasi "JSON API", yang memungkinkan pengambilan 10 artikel terakhir oleh penulis tertentu, dengan metadata dan komentar untuk setiap artikel, dalam satu permintaan HTTP.

Spesifikasi mendefinisikan, khususnya:

  • cara spesifik untuk membuat permintaan (yaitu parameter URL apa yang mengontrol pengurutan dan penomoran halaman serta data yang disertakan dalam keluaran);
  • struktur spesifik dokumen JSON dalam respons, misalnya:

    Sebuah dokumen HARUS berisi setidaknya satu dari anggota tingkat atas berikut:

    • data: "data primer" dokumen
    • errors: larik objek kesalahan
    • meta: objek meta yang berisi informasi meta non-standar.

    Anggota datadan errorsTIDAK HARUS hidup berdampingan dalam dokumen yang sama.

Nickolay
sumber
8

The Multipurpose Internet Mail Extensions (MIME) jenis (atau) jenis media adalah cara standar untuk menunjukkan sifat dan format dokumen ditransfer melalui internet. Ini distandarisasi dalam IETF RFC 6838 . The Internet Assigned Numbers Authority (IANA) adalah badan resmi yang bertanggung jawab untuk melacak semua jenis MIME resmi.

Jenis media yang digunakan oleh JSON API adalah application / vnd.api + json dan telah terdaftar dengan benar di IANA.

Jenis media API + JSON adalah untuk interoperabilitas antara API berbeda yang melayani JSON.

Itu dibuat dengan pertimbangan dari klien "JavaScript tebal" dan kebutuhan mereka, tetapi tidak spesifik untuk mereka. Jadi, diawali dengan vnd(vendor).

Menambahkan beberapa poin lagi di JSON API:

  • JSON API adalah spesifikasi yang mendefinisikan spesifikasi api tentang bagaimana permintaan dan respons dan seharusnya.
  • Memungkinkan kita untuk membuat memiliki struktur yang terdefinisi dengan baik (seperti sumber daya - hubungan dan tautannya dll ..)
  • Menentukan bagaimana REST API harus bereaksi untuk operasi CRUD .
  • Izinkan klien untuk menyimpan tanggapan.
Tom Taylor
sumber
-1

Jika Anda perlu mengatur aplikasi header di bawah ini / vnd.hmrc.1.0 + json

Maka Anda harus pergi dengan

Accept: application/vnd.hmrc.1.0+json

Menggunakan CUrl Anda dapat menjalankan skrip sebagai

$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);

Semoga membantu !!

Mahesh Yadav
sumber
2
Ini sama sekali tidak berhubungan dengan pertanyaan.
Christian