Content-Type Negotiation mit Symfony2
Die MA¤chtigkeit und Einfachheit des HTTP wird in vielerlei Hinsicht oft unterschA¤tzt. Der folgende Artikel stellt einen Aspekt vor, bei dem genau dies der Fall ist: Die Aushandlung des Formats, in welchem Daten per HTTP transportiert werden. Leider wird in den allermeisten HTTP-Applikationen A¼ber das Format der Antwort nicht verhandelt. Es werden beispielsweise GET-Requests kategorisch mit html beantwortet, ob ein Newsfeed als Atom oder RSS geliefert wird, entscheidet ein URL-Parameter. Auch ist das Kriterium dafA¼r, mit JSON oder XML zu antworten, nicht zu selten, ob auf die Ressource via XMLHTTPRequest zugegriffen wird. Hierbei halten sich selbst moderne HTTP-Applikationen kaum an den Standard.
Das Problem
Unser Anwendungsbeispiel ist eine Applikation, in der alle Daten sowohl in Form von html-Dokumenten als auch in JSON ausgeliefert werden kA¶nnen. Genau fA¼r solche Zwecke sieht das HTTP den Request-Header Accept vor. Ein HTTP-Client kann diesen nutzen, um dem Server mitzuteilen, welches Format er gerne in der Antwort vorfinden wA¼rde. Dabei kann er nicht nur ein einzelnes Format angeben, sondern auch mehrere und diese sogar priorisieren.
Continue reading "Content-Type Negotiation mit Symfony2"


