Gibt Text, Binär und HTML zurück
So senden Sie Text, Bilder, Dateien oder HTML von einer Funktion und lesen sie mit dem SDK oder einfachem HTTP zurück.
1. Wählen Sie einen Antworttyp
| Ihre Funktion kehrt zurück | Verwenden Sie responseType | data ist |
|---|---|---|
| JSON | 'json' (Standard) | der analysierte Wert |
| Nur-Text, CSV, HTML | 'text' (oder 'json', das auch die Zeichenfolge zurückgibt) | ein string |
| Ein Bild, ein PDF, beliebige Bytes | 'blob' oder 'arrayBuffer' | ein Blob oder ein ArrayBuffer |
Der Standardmodus 'json' kann JSON und Text übertragen. Es kann keine Bytes übertragen: Wenn eine Funktion mit einem binären Inhaltstyp antwortet, gibt das SDK den Fehler invalid_response zurück und fordert Sie auf, 'blob' oder 'arrayBuffer' auszuwählen, sodass nichts stillschweigend verloren geht.
2. Lesen Sie es mit dem SDK
In einem echten Lauf mit einer Funktion, die die Bytes 137,80,78,71,13,10,26,10,255,0,1 zurückgibt, hat arrayBuffer genau diese 11 Bytes zurückgegeben und blob hat type=image/png size=11 zurückgegeben.
Mit 'text', 'blob' oder 'arrayBuffer' überspringt das SDK den JSON-Umschlag und gibt den Hauptteil Ihrer Funktion unverändert zurück. Wenn Ihre Funktion mit einem Fehlerstatus antwortet, ist error.status dieser Status und error.message der Text, den Ihre Funktion zurückgegeben hat.
3. Raw-Modus über HTTP
Fügen Sie den Header X-Aurabase-Invoke-Mode: raw hinzu und die Plattform gibt die eigene Antwort Ihrer Funktion zurück: ihren Status, content-type und Bytes.
Ohne diesen Header lautet die Antwort immer 200 mit einem Umschlag:
Im Umschlag ist body der analysierte JSON, der Text Ihrer Antwort, wenn er UTF-8 und nicht JSON ist, oder null, wenn der Text leer oder binär ist.
Im Rohmodus trägt jede Antwort Ihrer Funktion x-aurabase-invoke-origin: function. Eine Antwort ohne diese kommt vom Gateway oder der Laufzeit. Auf diese Weise teilt das SDK einem von Ihrem Code zurückgegebenen 503 einen Plattformausfall mit.
4. Welche Header überleben
Im Rohmodus werden Ihre Antwortheader gefiltert, da sie vom eigenen Ursprung der Plattform bereitgestellt werden.
| Kopfzeile | Ergebnis |
|---|---|
content-type | Behalten. Der Standardwert ist application/octet-stream, wenn Sie keine festlegen. |
Benutzerdefinierte Header (x-custom-out, cache-control, …) | Behalten. |
set-cookie | Entfernt. Eine Funktion kann keine Cookies setzen. |
access-control-* | Entfernt. CORS wird vom Gateway entschieden. |
x-aura-*, x-internal-token | Entfernt. |
content-security-policy, strict-transport-security, x-content-type-options | Wird von der Plattform festgelegt, was auch immer Sie senden. |
content-length, transfer-encoding, connection | Neu berechnet. |
Eine Antwort, die Skripts ausführen kann (text/html, application/xhtml+xml, image/svg+xml, application/xml, text/xml), wird mit einer Sandboxing-Inhaltssicherheitsrichtlinie bereitgestellt. Echte Antwort für eine Funktion, die text/html zurückgibt:
Ihr HTML wird bereitgestellt, jedoch ohne Cookie-, Speicher- oder Skriptzugriff auf den Ursprung Ihres Projekts. Verwenden Sie Storage oder Ihre eigene Domain, um eine echte Webseite zu hosten.