2015-01-20 7 views

risposta

51

Il tipo di supporto application/vnd.api+json fa riferimento all'API JSON. Puoi leggere su di esso in great detail here.

Insomma, JSON API è un supponente e ben motivata:

... specifica per come un cliente deve richiedere che le risorse siano inverosimile o modificati, e come un server dovrebbe rispondere a tali richieste .

+9

Sarebbe bello se una frase su prefisso vendor ('VND.') Essere incluso in questa risposta dalla risposta 's @rmhartog. – Vasif

29

La prima è un'API tipo di media specifico. Il prefisso del venditore (vnd.) indica che è personalizzato per questo fornitore. Il +json indica che può essere analizzato come JSON, ma il tipo di supporto dovrebbe definire ulteriore semantica su JSON.

Il secondo indica semplicemente che il contenuto è JSON. In generale, questo non è molto utile, perché non definisce cosa significano i valori JSON.

Un buon punto di partenza per leggere su questo sarebbe Wikipedia, ma per maggiori dettagli è sempre possibile seguire i collegamenti alle RFC corrispondenti su quella pagina.

10

Se non siete sicuri, utilizzare application/json - è il tipo MIME generico che richiede solo i dati che si ritorni ad essere un well-formed JSON.


Il tipo MIME application/vnd.api+json è riservato per la comunicazione con il (confusamente chiamato) "JSON API" protocollo.

"JSON API" in questo contesto non non significa qualsiasi API basata su HTTP e JSON. È una strutturaper la creazione di API che consentono al client di recuperare e modificare entità correlate. Ad esempio, un'applicazione per blog potrebbe implementare un'API conforme alla specifica "API JSON", che consente di prelevare gli ultimi 10 articoli di un determinato autore, con metadati e commenti per ciascun articolo, in una singola richiesta HTTP.

La specifica definisce, in particolare:

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

    un documento deve contenere almeno uno dei seguenti componenti di livello superiore:

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

    I membri data e errors NON deve coesistere nello stesso documento.