Ich fragte mich also, was mit HTTP Content Negotiation in Bezug auf Anfragen, wo die zurückgegebenen Daten möglicherweise mehrere gültige MIME-Typen haben, getan werden sollte. wennCanonical vs Requested Type in Inhaltsverhandlung
Zum Beispiel sagen, ich habe ein beliebigen Daten, die den folgenden möglichen MIME-Typen hat:
text/data,application/x-data,application/data+xml
Da es mehrere MIME-Typen möglich eine Client-Anwendung Daten dieser Form von meiner Web-Anwendung anfordert sollte vernünftigerweise erwarten, dass diese Art von Daten empfangen wird, unabhängig davon, welche der MIME-Typen sie in ihren Anforderungen verwenden. Header akzeptieren. ABER es wird im Allgemeinen einen Konsens darüber geben, welcher Typ der kanonische Typ für diese Daten ist (dh einer wird ein ordnungsgemäß registrierter MIME-Typ mit der IETF sein, während die anderen Vorregistrierungs- oder Vorstandardisierungstypen sind).
Also meine Frage ist, sollte ich bei der Beantwortung dieser Anfragen meine zurückgegebene Content-Type-Header als der kanonische Typ oder der angeforderte Typ festgelegt werden? Was ist besser?
Sollte ich immer den kanonischen Typ zurückgeben oder sollte ich den angeforderten Typ zurückgeben, um Kompatibilität mit älteren/schlecht geschriebenen Anwendungen zu gewährleisten, die nicht aktualisiert wurden? Derzeit gebe ich den kanonischen Typ zurück, da dies ein besserer Ansatz zu sein scheint und was die meisten Leute mit den Datentypen machen, mit denen ich arbeite.
Dies ist etwas subjektiv, so dass sie, wenn Sie denken, es sollte Community Wiki statt einer Frage lassen Sie mich wissen und ich werde in Erwägung ziehen, es
In meinem Fall sind die MIME-Typen alle gültigen Typen für das gleiche Datenformat (die zurückgegebenen Daten sind unabhängig vom Typ identisch). Es ist also kein Problem, eine passende Antwort zu generieren, sondern welchen MIME-Typ ich zurückgeben soll Content-Type-Header – RobV
In diesem Fall wählen Sie dann die, von der Sie glauben, dass sie am weitesten unterstützt wird und am besten geeignet ist. –