2010-10-24 9 views
6

1) Ist es wichtig, den korrekten Mime-Typ für eine Webservice-Antwort festzulegen?REST - Web Service-Antwort - Mime-Typ?

2) Was ist der korrekte MIME-Typ für a,
a) XML-Antwort?

b) JSON-Antwort?

application/xml 
text/xml 
application/json 
application/x-javascript 
text/javascript 
text/x-javascript 
text/x-json 

Antwort

7

1) Ist es wichtig, den richtigen Mime-Typ für eine Web-Service-Antwort zu setzen?

Absolut ja. Wenn Sie eine echte REST-API erstellen, ist die Dokumentation der verschiedenen zurückgegebenen Medientypen ein wichtiger Teil Ihrer API-Spezifikation.

2) Was ist der korrekte MIME-Typ für a, XML-Antwort? b) JSON-Antwort?

Für einen echten REST-Dienst hängt dies von den Details Ihrer API und den von Ihnen definierten Inhaltstypen ab.

Als Beispiel (aus this excellent article, die in voller Länge lesenswert ist), möchte eine Bank möglicherweise eine Content-Type für Bankkonten von application/vnd.bank.org.account+xml definieren. Beachten Sie, dass der MIME-Typ "mit +xml endet, und gemäß RFC 3023 können XML-Prozessoren (einschließlich XMLHttpRequest) solche Darstellungen verarbeiten, als wäre es XML". Die gleiche Bank könnte auch XML verwenden, um eine Überweisung zu vertreten, diesmal einen Content-Type von application/vnd.bank.org.transer+xml

4

Wenn Sie keinen MIME-Typ festlegen, wird die Ressource vom Empfänger nicht korrekt interpretiert.

Verwenden Sie text/xml bzw. application/json.

+7

Beachten Sie, dass 'text/xml' und' application/xml' leicht unterschiedlich verwendet werden. 'text/xml' zeigt ein XML-Format an, das hauptsächlich für den Menschen lesbar/verständlich ist. Entweder ist in Ordnung, hängt jedoch von der beabsichtigten Verwendung der XML-Ausgabe ab. – BoltClock

+0

+1 für BoltClock. Ich wollte das gleiche schreiben, aber ich habe seinen Kommentar gesehen. Sehen Sie sich rfc3023 an (siehe http://www.ietf.org/rfc/rfc3023.txt) und suchen Sie nach "lesbar für Gelegenheitsbenutzer". Der Link http://xml.silmaril.ie/developers/serversoftware/ enthält die wichtigsten Informationen von rfc3023 in der Kurzform. – Oleg

+1

Die Verwendung geeigneter Inhaltstypen ist ein zentraler Tenant von REST. Daher sind generische XML- und JSON-Typen nicht geeignet. Hätte das OP Fragen zu RPC-Services gestellt, wäre Ihre Antwort in Ordnung. Aber ich hatte das Gefühl, dass die anderen beiden Antworten zutreffender waren. Um sie auf die gleiche Stufe zu stellen, wählte ich Ihre Antwort zusätzlich zur Aufwertung der anderen. –

1

MIME-Typ ist wichtig für die korrekte Interpretation durch den Empfänger.

a) application/xml oder text/xml

b) application/json

MIME Media Types

+0

Ich denke am besten, nur mit Text/Ebene zu bleiben Für beide! – 001

+0

Wenn die Empfängeranwendung den Antwortmime-Typ für nichts verwendet, können Sie einen beliebigen Mime-Typ verwenden. Für Best Practices müssen Sie den richtigen Mime-Typ einstellen. – ReinaldoNS

+0

Wenn Sie Text/Plain eingeben, würde ein Browser beispielsweise nicht wissen, wie er korrekt angezeigt wird. – krico

3

1) Ist es wichtig, den richtigen MIME-Typen für eine Web-Service-Antwort zu setzen?

Ja. Dies hängt jedoch davon ab, wie der Empfänger erwartet oder konfiguriert wird, um den Inhalt zu verarbeiten. Ein Client, der mithilfe von Out-of-Band-Informationen über den Inhalt erstellt wurde, kann den Inhaltstyp ignorieren, oder ein Client kann die Inhaltstypmetadaten verwenden, um die Darstellung basierend auf dem Inhaltstyp an ein geeignetes Verarbeitungsmodul weiterzuleiten. Content-Type ermöglicht einem Kunden, den Inhalt zu verstehen, ohne in den eigentlichen Inhalt hineinschauen zu müssen. Da Sie Ihre Frage auch als REST-bezogen markiert haben, ist es wichtig, die selbstbeschreibende Einschränkung von REST zu verstehen und welche Rolle die Medientypen spielen, um diese Einschränkung zu erreichen. Wenn Sie mehr über Selbstbeschreibungsfähigkeit erfahren möchten, lesen Sie section 5.2.1 of Roy's dissertation.

2) Was ist der korrekte MIME-Typ für a, XML-Antwort?

b) JSON-Antwort?

application/xml text/xml application/json application/x-javascript text/javascript text/x-javascript text/x-jsontext/x-json

Alle oben genannten Inhalt Typen sind generisch und geben dem Client keine weiteren Informationen, außer zu sagen, ob der Inhalt JSON oder XML ist. Was Sie brauchen, ist ein spezifischer Inhaltstyp für Ihre Anwendung, der Ihrem Client nicht nur das Format mitteilt, sondern auch die Semantik und die Verarbeitung des Inhalts beschreibt. Wie für den Unterschied zwischen der Anwendung/xxx und Text/xxx, RFC 3023 besagt Folgendes:

Wenn ein XML-Dokument, das das nicht verarbeiteten, XML-Quelldokument ist lesbar gelegentliche Nutzer ist, text/xml ist vorzuziehen für die Anwendung/xml.MIME Benutzeragenten (und Webbenutzeragenten), die keine explizite Unterstützung für Text/XML haben, behandeln es als text/plain, zum Beispiel, indem die XML MIME-Entität als Nur-Text angezeigt wird. Anwendung/XML ist vorzuziehen, wenn die XML-MIME-Entität von gelegentlichen Benutzern nicht gelesen werden kann. Ich habe in einigen Diskussionen gelesen, dass text/xml in Zukunft veraltet sein kann, aber ich bin nicht sicher davon.

Für JSON ist der richtige MIME-Typ application/json. Siehe SO question.

0

1 verwendet wird) Ist es wichtig, den richtigen MIME-Typen für eine Web-Service Antwort zu setzen?

Ja, wegen der einheitlichen Schnittstelle/selbst beschreibenden Nachricht Constraint. Die Nachrichten müssen alle notwendigen Informationen enthalten, um sie zu verarbeiten.

2), was ist der richtige MIME-Typ für ein,

Es hängt davon ab, was der Kunde verlangt. Sie müssen den Akzeptieren-Header überprüfen. Wir verwenden normalerweise application/xml von Diensten und text/xml durch die Bereitstellung von statischen Dateien. Aber es ist nicht wirklich wichtig.

Wenn Sie Hyperlinks an Sie senden, können Sie einen herstellerspezifischen MIME verwenden, oder Sie können eine verknüpfte Datenlösung wie JSON-LD verwenden.

Verwandte Themen