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.
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
+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
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. –