Grails - fügt jeder Antwort einen Header hinzu

8

Wie könnte ich einen Antwort-Header hinzufügen - sagen wir X-Time, der ungefähr so ​​aussehen würde

X-Zeit: 112

Wobei der angegebene Wert die Zeit in Millisekunden ist, die die Antwort für die Verarbeitung benötigt hat? Gibt es eine wirklich einfache Möglichkeit, dies zu einer Grails-App hinzuzufügen? Nicht etwas, auf das ich dauerhaft verzichten möchte, aber es wäre schön, wenn ich meine App entwickeln würde.

    
BuddyJoe 20.06.2011, 18:03
quelle

1 Antwort

31

Um einfach einen Header zur Antwort hinzuzufügen, können Sie einen after Filter verwenden.

%Vor%

Bearbeiten:

Um die Zeit tatsächlich zu berechnen, wäre es wahrscheinlich angemessener, ein javax.servlet.Filter anstelle eines Grails-Filters.

src / groovy / com / Beispiel / meinProjekt / MyFilter.groovy

%Vor%

src / templates / war / web.xml (Führen Sie grails install-templates aus, wenn src / templates nicht bereits in Ihrer Quellstruktur vorhanden ist)

%Vor%

Der Grund für die Verwendung von javax.servlet.Filter ist, dass Sie Ihre "Vorher" - und "Nachher" -Aktionen nicht trennen müssen und daher die Startzeit über die gesamte Filterkette hinweg beibehalten können. Servlet-Ausführung.

Zusätzliche Anmerkung:

Es scheint mir komisch, die abgelaufene Ausführungszeit des Servers als Antwortheader zurückzugeben. Vielleicht hast du einen vernünftigen Grund dafür, aber in den meisten Fällen würde ich A) entweder mehr besorgt sein über die gesamte Umlaufzeit (wie vom Kunden beobachtet), oder B) Protokollierte verstrichene Ausführungszeiten auf dem Server für meine eigene Systemadministration / Metriken.

    
Rob Hruska 20.06.2011, 18:16
quelle