Devolver texto, binario y HTML
Cómo enviar texto, imágenes, archivos o HTML desde una función y leerlos con el SDK o HTTP simple.
1. Elija un tipo de respuesta
| Tu función regresa | Utilice responseType | data es |
|---|---|---|
| JSON | 'json' (predeterminado) | el valor analizado |
| Texto sin formato, CSV, HTML | 'text' (o 'json', que también devuelve la cadena) | un string |
| Una imagen, un PDF, cualquier byte | 'blob' o 'arrayBuffer' | un Blob o un ArrayBuffer |
El modo predeterminado 'json' puede transportar JSON y texto. no puede transportar bytes: si una función responde con un tipo de contenido binario, el SDK devuelve el error invalid_response y le indica que elija 'blob' o 'arrayBuffer', para que no se pierda nada silenciosamente.
2. Léelo con el SDK
En una ejecución real con una función que devuelve los bytes 137,80,78,71,13,10,26,10,255,0,1, arrayBuffer devolvió exactamente esos 11 bytes y blob devolvió type=image/png size=11.
Con 'text', 'blob' o 'arrayBuffer', el SDK omite el sobre JSON y devuelve el cuerpo de su función tal como está. Si su función responde con un estado de error, error.status es ese estado y error.message es el texto que devolvió su función.
3. Modo sin formato a través de HTTP
Agregue el encabezado X-Aurabase-Invoke-Mode: raw y la plataforma devuelve la propia respuesta de su función: su estado, content-type y bytes.
Sin ese encabezado, la respuesta siempre es 200 con un sobre:
En el sobre, body es el JSON analizado, el texto de su respuesta cuando es UTF-8 y no JSON, o null cuando el cuerpo está vacío o es binario.
En modo sin formato, cada respuesta de su función lleva x-aurabase-invoke-origin: function. Una respuesta sin ella proviene de la puerta de enlace o del tiempo de ejecución. Así es como el SDK le indica a un 503 devuelto por su código una interrupción de la plataforma.
4. ¿Qué encabezados sobreviven?
En modo sin formato, los encabezados de respuesta se filtran porque se sirven desde el propio origen de la plataforma.
| encabezado | Resultado |
|---|---|
content-type | Mantenido. El valor predeterminado es application/octet-stream si no configura ninguno. |
Encabezados personalizados (x-custom-out, cache-control,…) | Mantenido. |
set-cookie | Eliminado. Una función no puede configurar cookies. |
access-control-* | Eliminado. CORS lo decide la puerta de enlace. |
x-aura-*, x-internal-token | Eliminado. |
content-security-policy, strict-transport-security, x-content-type-options | Lo establece la plataforma, envíes lo que envíes. |
content-length, transfer-encoding, connection | Recalculado. |
Una respuesta que puede ejecutar scripts (text/html, application/xhtml+xml, image/svg+xml, application/xml, text/xml) se entrega con una política de seguridad de contenido de espacio aislado. Respuesta real para una función que devuelve text/html:
Se sirve su HTML, pero sin acceso a cookies, almacenamiento o secuencias de comandos al origen de su proyecto. Utilice Storage o su propio dominio para alojar una página web real.