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_TOKEN

Con 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

NecesitasQué hace el Worker
Que Make o Zapier reciban un cuerpo con otra formaRecibe el POST del webhook saliente, transforma previousData y newData y reenvía al escenario.
Filtrar quién llamaComprueba una cabecera o un origen antes de reenviar a Dinaup, y responde 403 al resto.
Absorber picosEncola las peticiones en una cola de Cloudflare y las envía a Dinaup al ritmo que admite la clave.

Relacionado

En esta página