Restituisce testo, binario e HTML
Come inviare testo, immagini, file o HTML da una funzione e rileggerli con l'SDK o il semplice HTTP.
1. Scegli un tipo di risposta
| La tua funzione ritorna | Usa responseType | data è |
|---|---|---|
| JSON | 'json' (predefinito) | il valore analizzato |
| Testo semplice, CSV, HTML | 'text' (o 'json', che restituisce anche la stringa) | a string |
| Un'immagine, un PDF, qualsiasi byte | 'blob' o 'arrayBuffer' | un Blob o un ArrayBuffer |
La modalità predefinita 'json' può trasportare JSON e testo. non può trasportare byte: se una funzione risponde con un tipo di contenuto binario, l'SDK restituisce l'errore invalid_response e ti dice di scegliere 'blob' o 'arrayBuffer', quindi nulla va perso in silenzio.
2. Leggilo con l'SDK
In un'esecuzione reale con una funzione che restituisce i byte 137,80,78,71,13,10,26,10,255,0,1, arrayBuffer ha restituito esattamente quegli 11 byte e blob ha restituito type=image/png size=11.
Con 'text', 'blob' o 'arrayBuffer', l'SDK salta la busta JSON e restituisce il corpo della funzione così com'è. Se la tua funzione risponde con uno stato di errore, error.status è quello stato e error.message è il testo restituito dalla funzione.
3. Modalità raw su HTTP
Aggiungi l'intestazione X-Aurabase-Invoke-Mode: raw e la piattaforma restituisce la risposta della tua funzione: il suo stato, content-type e byte.
Senza quell'intestazione, la risposta è sempre 200 con una busta:
Nella busta, body è il JSON analizzato, il testo della risposta quando è UTF-8 e non JSON, o null quando il corpo è vuoto o binario.
In modalità raw ogni risposta dalla tua funzione trasporta x-aurabase-invoke-origin: function. Una risposta senza di essa proviene dal gateway o dal runtime. Questo è il modo in cui l'SDK indica un 503 restituito dal tuo codice da un'interruzione della piattaforma.
4. Quali intestazioni sopravvivono
In modalità raw le intestazioni delle risposte vengono filtrate, perché vengono servite dall'origine della piattaforma.
| Intestazione | Risultato |
|---|---|
content-type | Mantenuto. Il valore predefinito è application/octet-stream se non ne imposti nessuno. |
Intestazioni personalizzate (x-custom-out, cache-control, …) | Mantenuto. |
set-cookie | Rimosso. Una funzione non può impostare cookie. |
access-control-* | Rimosso. CORS viene deciso dal gateway. |
x-aura-*, x-internal-token | Rimosso. |
content-security-policy, strict-transport-security, x-content-type-options | Impostato dalla piattaforma, qualunque cosa invii. |
content-length, transfer-encoding, connection | Ricalcolato. |
Una risposta che può eseguire script (text/html, application/xhtml+xml, image/svg+xml, application/xml, text/xml) viene fornita con una policy di sicurezza del contenuto sandboxing. Risposta reale per una funzione che restituisce text/html:
Il tuo HTML viene servito, ma senza cookie, archiviazione o accesso a script all'origine del tuo progetto. Utilizza Storage o il tuo dominio per ospitare una vera pagina web.