Cloudflare Worker
Un Worker de Cloudflare delante de la API REST de tu empresa para guardar el token fuera del navegador, cachear las respuestas repetidas de un informe y adaptar el formato de las peticiones.
Un Worker de Cloudflare es un intermediario entre tus clientes y la API REST de tu empresa, https://<clave-de-conexion>.dinaup.io/api. Sirve para tres cosas. El token Bearer vive en un secreto de Cloudflare y no en el código de una web. Las respuestas repetidas de un informe salen de la caché en vez de gastar peticiones. La URL o el cuerpo se reescriben al formato que espera otra plataforma.
Antes de empezar
- Una cuenta de Cloudflare con Workers y la herramienta
wrangler. - El token Bearer de una clave API acotada a las secciones que el Worker va a leer, y la URL de tu empresa. Ver API REST: cómo funciona.
Publicar un informe con caché
El Worker ejecuta POST /api/reports con el token guardado en el secreto SECRET_TOKEN y devuelve la respuesta cacheada 10 segundos, en Cloudflare y en el navegador.
const apiUrl = "https://<clave-de-conexion>.dinaup.io/api/reports?id=<id-del-informe>&page=1&resultsPerPage=100&safeColumnsName=true";
export default {
async fetch(request, env, ctx) {
const upstream = new Request(apiUrl, {
method: "POST",
headers: {
"Authorization": "Bearer " + env.SECRET_TOKEN,
"Content-Type": "application/json",
},
body: "{}",
});
const response = await fetch(upstream, {
cf: { cacheTtl: 10, cacheEverything: true },
});
const headers = new Headers(response.headers);
headers.set("Cache-Control", "public, max-age=10");
headers.delete("set-cookie");
return new Response(response.body, {
status: response.status,
statusText: response.statusText,
headers,
});
},
};El secreto se guarda una vez y no aparece en el código:
wrangler secret put SECRET_TOKENCon la caché, las visitas repetidas en esos 10 segundos las responde Cloudflare y no ocupan turno en la cola de la clave. Sin ella, cada visita es una petición al servidor de tu empresa, y la clave atiende a la vez tantas como vCores tiene. Los parámetros de reports están en Referencia de la API REST.
Otros usos
| Necesitas | Qué hace el Worker |
|---|---|
| Que Make o Zapier reciban un cuerpo con otra forma | Recibe el POST del webhook saliente, transforma previousData y newData y reenvía al escenario. |
| Filtrar quién llama | Comprueba una cabecera o un origen antes de reenviar a Dinaup, y responde 403 al resto. |
| Absorber picos | Encola las peticiones en una cola de Cloudflare y las envía a Dinaup al ritmo que admite la clave. |
Relacionado
- Zapier, Make y n8n: las plataformas que suelen ir al otro lado del Worker.
- Webhooks salientes: el cuerpo que llega cuando el Worker recibe un aviso de Dinaup.