Inhaltstypen sind nur im Rahmen einer einzelnen Anfrage wichtig. Sie beschreiben lediglich das Format des gesendeten Inhalts.
Ihr Webdienst sollte die Antwort liefern, die für die Clientanforderung, die er bereitstellen kann, am annehmbarsten ist. Die Clientanforderung sollte einen Accept-Header enthalten, der die zulässigen Inhaltstypen beschreibt. Wenn Ihr Dienst keines der Inhaltstypen in diesem Header nicht zur Verfügung stellen kann dann zurück 406 Not Acceptable
In Ihrer Situation, wenn Ihre Kunden GET
Anfragen application/xml
in den Accept-Header enthalten, dann ist es in Ordnung mit application/xml
, unabhängig von PUT
zu reagieren Anfrage über die angeforderten Ressourcen.
EDIT:
Die status code definition für 406 Not Acceptable
eine Note umfasst mit der folgenden:
Anmerkung: HTTP/1.1-Server erlaubt Antworten zurückgeben, die nicht akzeptabel gemäß den akzeptieren gesendet Headern in die Anfrage. In einigen Fällen kann dies sogar vorzuziehen sein, eine Antwort zu senden. Benutzeragenten werden aufgefordert, die Kopfzeilen von einer eingehenden Antwort zu überprüfen, um festzustellen, ob sie akzeptabel ist.
So können Sie application/xml
wann immer Sie wollen zurückgeben.
Interessanter Artikel, aber es ist nicht meine Frage beantworten .. Beispiel: ich einen neuen Artikel PUT auf/Artikel Firstpost /, erhalte ich die Möglichkeit, einen Inhaltstyp entweder application/xml oder Anwendung zu verwenden /Formulardaten. Ich wähle das spätere. Dann mache ich einen GET auf den Artikel, und ich bekomme die Anwendung/XML-Darstellung .. Ist das in Ordnung? – Evert
Entschuldige immer noch ziemlich neu zu REST selbst, aber wie ich es verstehe, hängt das wirklich davon ab, wie das XML vom Client konsumiert wird. Die Nachrichtenentität sollte in einem Datenformat vorliegen, das für den Client am besten geeignet ist und keine spezielle Syntaxanalyse für das Problem erfordert, da dies den Client und den Dienst miteinander verbindet. Hier ist ein Beitrag, der das mehr diskutiert; http://www.peej.co.uk/articles/rest-data-formats.html. Was waren Ihre Gründe dafür, dass application/xml nicht den REST-Prinzipien folgt? –