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:

statusInteger

Der HTTP-Statuscode

headersDictionary(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 das HTTPResponse Objekt geschrieben, wenn eine gültige App-ID vorliegt. In diesem Fall wird der Cookie-Name mit dem Präfix la-{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 die LivingAPI 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 in headers 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)?>