Valore dell'intestazione: application / vnd.api + json


101

Qualcuno può spiegare le differenze tra:

application/vnd.api+json

e

application/json

Risposte:


94

Il tipo di supporto si application/vnd.api+jsonriferisce all'API JSON. Puoi leggerlo in dettaglio qui .

In breve, l'API JSON è un supponente e ben ragionato:

... specifica su come un client dovrebbe richiedere che le risorse vengano recuperate o modificate e come un server dovrebbe rispondere a tali richieste.


30
Sarebbe bello se una frase sul prefisso del fornitore ("vnd.") Venisse inclusa in questa risposta dalla risposta di @rmhartog.
Vasif

Sono qui specificamente perché stavo cercando una spiegazione vnd, che ora so essere il prefisso del fornitore a causa di @Vasif. Una modifica dell'originale sarebbe superba.
Kamuela Franco

69

Il primo è un tipo di supporto specifico dell'API. Il prefisso del fornitore ( vnd.) indica che è personalizzato per questo fornitore. Il +jsonindica che può essere analizzato come JSON, ma il tipo di supporto deve definire ulteriore semantica oltre a JSON.

Il secondo significa solo che il contenuto è JSON. Questo in generale non è molto utile, tuttavia, perché non definisce il significato dei valori JSON.

Un buon punto di partenza per leggere questo argomento sarebbe su Wikipedia , ma per maggiori dettagli puoi sempre seguire i link alle RFC corrispondenti in quella pagina .


33

Se non sei sicuro, usa application/json: è il tipo MIME generico che richiede solo che i dati restituiti siano un JSON ben formato .


Il application/vnd.api+jsontipo MIME è riservato per la comunicazione utilizzando il protocollo "JSON API" (chiamato in modo confuso) .

"API JSON" in questo contesto non indica alcuna API basata su HTTP e JSON. Non è nemmeno un'API completamente specificata, piuttosto è un framework per la creazione di API che consentono al client di recuperare e modificare entità correlate. Ad esempio, un'applicazione blog potrebbe implementare un'API conforme alla specifica "API JSON", che consente di recuperare gli ultimi 10 articoli di un determinato autore, con metadati e commenti per ogni articolo, in una singola richiesta HTTP.

La specifica definisce, in particolare:

  • il modo specifico in cui deve essere formata una richiesta (cioè quali parametri URL controllano l'ordinamento e l'impaginazione ei dati inclusi nell'output);
  • la struttura specifica del documento JSON nella risposta, ad esempio:

    Un documento DEVE contenere almeno uno dei seguenti membri di primo livello:

    • data: i "dati primari" del documento
    • errors: un array di oggetti di errore
    • meta: un meta oggetto che contiene meta-informazioni non standard.

    I membri datae errorsNON DEVONO coesistere nello stesso documento.


8

Il tipo di supporto MIME (Multipurpose Internet Mail Extensions) (o) è un modo standardizzato per indicare la natura e il formato di un documento trasferito su Internet. È standardizzato in IETF RFC 6838 . L' Internet Assigned Numbers Authority (IANA) è l'organismo ufficiale responsabile del monitoraggio di tutti i tipi di MIME ufficiali.

Il tipo di supporto utilizzato dall'API JSON è application / vnd.api + json ed è stato registrato correttamente con IANA.

Il tipo di supporto API + JSON è per l'interoperabilità tra diverse API che servono JSON.

È stato creato tenendo in considerazione i client "thick JavaScript" e le loro esigenze, ma non è specifico per loro. Quindi, preceduto da vnd(venditore).

Aggiunta di alcuni punti in più sull'API JSON:

  • L'API JSON è una specifica che definisce una specifica API su come dovrebbe essere una richiesta e una risposta.
  • Ci permette di creare una struttura ben definita (come risorsa - relazioni ed i suoi collegamenti ecc.)
  • Specifica come devono reagire le API REST per le operazioni CRUD .
  • Consente al client di memorizzare nella cache le risposte.

-1

Se è necessario configurare l'intestazione dell'applicazione di seguito / vnd.hmrc.1.0 + json

Allora dovresti andare con

Accept: application/vnd.hmrc.1.0+json

Usando il CUrl puoi eseguire lo script come

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

Spero che sia d'aiuto!!


2
Questo non ha niente a che fare con la domanda.
Christian
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.