HTTPResponse
Ein HTTPResponse
-Objekt enhält Informationen über die HTTP-Antwort über die
das Anzeige-Template ausgeliefert werden wird und ist zugänglich als
globals.response
. Das Anzeige-Template kann die Attribute diese Objekts
ändern, um die Antwort zu beinflussen. Die Attribute sind:
status
IntegerDer HTTP-Statuscode
headers
Dictionary(String ➝ String)Die HTTP-Header, die bei der Antwort geschickt werden (Groß-/Kleinschreibung wird dabei bei den Schlüsseln ignoriert).
Set-Cookie
Header werden nur in dasHTTPResponse
Objekt geschrieben, wenn eine gültige App-ID vorliegt. In diesem Fall wird der Cookie-Name mit dem Präfixla-{appId}-
ergänzt ({appId}
stellt dabei die ID der aktuellen App dar. Beispiel:la-661519498060b8918021d884-
). Dieser Präfix wird beim nächsten Request wieder entfernt, bevor das Cookie an dieLivingAPI
weitergereicht wird. Mit diesem Mechanismus wird sichergestellt, dass Cookies von einer App nur an diese durchgereicht werden und Inhalte nicht von anderen Apps ausgelesen werden können.send_file(file)
Methode(File) ➝None
Mit dieser Methode können Sie die LivingAPI anweisen, statt der Ausgabe, die Ihr Anzeige-Template erzeugt, ein File-Objekt auszuliefern.
Wenn Sie unter Uploads konfiguriert haben, daß nur Benutzer mit Rechten an der App Dateien herunterladen können, können Sie in einem Anzeige-Template Ihren eigenen Zugriffsschutz implementieren und dann mittels
send_file()
die gewünschte Datei ausliefern.send_file()
kann mehrmal aufgerufen werden. Das Argument muß ein File-Objekt sein. Alle übergebenen File-Objekte werden in einer Liste gesammelt. Ist am Ende des Anzeige-Templates diese Liste leer, so wird die Ausgabe des Anzeige-Templates ausgeliefert. Enthält die Liste ein File-Objekt, so wird dieses File ausgeliefert. Enthält die Liste mehrere Files, so werden diese Files in ein ZIP-Archiv verpackt, und dieses ZIP-Archiv wird ausgeliefert.Werden mittels
send_file()
Dateien ausgeliefert, so werden trotzdem die inheaders
gesetzten Header berücksichtigt, mit Ausnahme des"Content-Type"
-Headers, der automatisch auf den richtigen Datei-Typ gesetzt wird und auch nicht verändert werden kann. Außerdem wird der"Content-Disposition"
-Header gesetzt um dem Browser den Original-Dateinamen bekannt zu machen.clear_files()
Methode() ➝None
Leert die Liste der zu auszuliefernden Files, d.h. danach wird wieder die Ausgabe des Anzeige-Templates ausgeliefert.
Beispiele
Ein Redirect läßt sich mit status
und headers
beispielsweise
folgendermaßen implementieren:
<?code globals.response.status = 303?>
<?code globals.response.headers["Location"] = "http://www.example.org/"?>
Sie können mit folgendem Code Ihr eigenes Account-Icon ausliefern:
<?code globals.response.send_file(globals.user.image)?>