it-swarm.com.de

Headerwert: application/vnd.api + json

Kann jemand die Unterschiede erklären zwischen:

application/vnd.api+json

und

application/json
69
RockNinja

Der Medientyp application/vnd.api+json bezieht sich auf die JSON-API. Sie können darüber lesen ausführlich hier

Kurz gesagt, die JSON-API ist ein meinungsbildend und gut begründet:

… Angabe, wie ein Client anfragen soll, dass die Ressourcen .__ sind. abgerufen oder geändert, und wie ein Server darauf reagieren soll. Anfragen.

64

Der erste ist ein API-spezifischer Medientyp. Das Herstellerpräfix (vnd.) gibt an, dass es für diesen Anbieter benutzerdefiniert ist. Der +json gibt an, dass er als JSON analysiert werden kann, der Medientyp sollte jedoch weitere Semantik über JSON definieren.

Das zweite bedeutet nur, dass der Inhalt JSON ist. Dies ist jedoch im Allgemeinen nicht sehr nützlich, da es nicht definiert, was die JSON-Werte bedeuten.

Ein guter Ausgangspunkt, um darüber zu lesen, wäre auf Wikipedia , aber für weitere Details können Sie immer den Links zu den entsprechenden RFCs auf dieser Seite folgen.

44
rmhartog

Wenn Sie sich nicht sicher sind, verwenden Sie application/json. Hierbei handelt es sich um den generischen MIME-Typ, bei dem nur die von Ihnen zurückgegebenen Daten ein wohlgeformter JSON sind.


Der application/vnd.api+json-MIME-Typ ist für die Kommunikation mit dem (verwirrend benannten) "JSON API" Protokoll reserviert.

"JSON-API" in diesem Zusammenhang bedeutet nicht _ ​​any API basierend auf HTTP und JSON. Es ist ein Framework zum Erstellen von APIs, mit denen der Client zusammenhängende Entitäten abrufen und ändern kann. Eine Bloganwendung könnte beispielsweise eine API implementieren, die der "JSON API" -Spezifikation entspricht und die das Abrufen der letzten zehn Artikel eines bestimmten Autors mit Metadaten und Kommentaren für jeden Artikel in einer einzigen HTTP-Anforderung ermöglicht. 

Die Spezifikation definiert insbesondere:

  • die spezifische Art und Weise, wie eine Anfrage gebildet werden sollte (d. h. welche URL-Parameter die Sortierung und Paginierung und die in der Ausgabe enthaltenen Daten steuern);
  • die spezifische Struktur des JSON-Dokuments in der Antwort, zum Beispiel:

    Ein Dokument MUSS mindestens eines der folgenden Mitglieder der obersten Ebene enthalten:

    • data: "Primärdaten" des Dokuments
    • errors: ein Array von Fehlerobjekten
    • meta: ein Metaobjekt, das nicht standardmäßige Metainformationen enthält.

    Die Mitglieder data und errors dürfen NICHT im selben Dokument vorhanden sein.

21
Nickolay

Der MIME-Medientyp Multipurpose Internet Mail Extensions (MIME) (oder) ist eine standardisierte Methode, um die Art und das Format eines über das Internet übertragenen Dokuments anzugeben. Es ist in IETF RFC 6838 ..__ standardisiert. Die Internet Assigned Numbers Authority (IANA) ist die offizielle Stelle, die für die Überwachung aller offiziellen MIME-Typen verantwortlich ist.

Der von JSON API verwendete Medientyp ist application/vnd.api + json und wurde ordnungsgemäß bei IANA registriert. 

Der API + JSON-Medientyp dient der Interoperabilität zwischen verschiedenen APIs, die JSON bedienen.

Es wurde mit Rücksicht auf "dicke JavaScript" -Kunden und deren Bedürfnisse erstellt, ist jedoch nicht spezifisch für sie. Also vorangestellt mit vnd (Hersteller).

Hinzufügen weiterer Punkte zur JSON-API: 

  • Die JSON-API ist eine Spezifikation, die eine API-Spezifikation definiert, wie eine Anforderung und Antwort aussehen soll und soll.
  • Ermöglicht das Erstellen einer klar definierten Struktur (wie Ressourcenbeziehungen und deren Links usw.).
  • Gibt an, wie die REST - APIs für CURD -Operationen reagieren sollen.
  • Ermöglicht dem Client, die Antworten zwischenzuspeichern. 
2
rm -rf star

Wenn Sie den untenstehenden Header einrichten müssen application/vnd.hmrc.1.0 + json

Dann solltest du mitgehen 

Accept: application/vnd.hmrc.1.0+json

Mit der CUrl können Sie das Skript als ausführen

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

Ich hoffe es hilft!!

0
Mahesh Yadav