Guias
...
Extensão
Extensão Baseada em API
Implantar Ferramentas de API com Cloudflare Workers
6min
início rápido como a extensão de api do paragraph requer um endereço de internet publicamente acessível como um endpoint de api, precisamos implantar nossa extensão de api em um endereço público na internet abra o arquivo wrangler toml e modifique name e compatibility date para o nome e a data de compatibilidade da sua aplicação uma configuração importante aqui é o token em vars , que você precisará fornecer ao adicionar a extensão de api no paragraph por razões de segurança, é recomendável usar uma string aleatória como o token você não deve escrever o token diretamente no código fonte, mas passá lo através de variáveis de ambiente portanto, não faça commit do seu wrangler toml no seu repositório de código name = "extension example" compatibility date = "2023 01 01" \[vars] token = "bananaiscool" esta extensão de api retorna uma citação aleatória de "breaking bad" você pode modificar a lógica desta extensão de api em src/index ts este exemplo mostra como interagir com uma api de terceiros // ⬇️ implemente sua lógica aqui ⬇️ // point === "app external data tool query" // https //api breakingbadquotes xyz/v1/quotes const count = params? inputs? count ?? 1; const url = `https //api breakingbadquotes xyz/v1/quotes/${count}`; const result = await fetch(url) then(res => res text()) // ⬆️ implemente sua lógica aqui ⬆️ este repositório simplifica todas as configurações, exceto para a lógica de negócios você pode usar diretamente os comandos npm para implantar sua extensão de api npm run deploy após a implantação bem sucedida, você obterá um endereço público na internet, que poderá adicionar no paragraph como um endpoint de api observe para não esquecer o caminho do endpoint adicionando endpoint de api no paragraph import { bearerauth } from "hono/bearer auth"; (c, next) => { const auth = bearerauth({ token c env token }); return auth(c, next); }, nossa lógica de autenticação bearer é mostrada acima usamos o pacote hono/bearer auth para autenticação bearer você pode usar c env token em src/index ts para obter o token sobre validação de parâmetros import { z } from "zod"; import { zvalidator } from "@hono/zod validator"; const schema = z object({ point z union(\[ z literal("ping"), z literal("app external data tool query"), ]), // restringe 'point' a dois valores específicos params z object({ app id z string() optional(), tool variable z string() optional(), inputs z record(z any()) optional(), query z any() optional(), // string ou null }) optional(), }); usamos zod para definir os tipos de parâmetros você pode usar zvalidator em src/index ts para validação de parâmetros obtenha parâmetros validados através de const { point, params } = c req valid("json"); nosso point tem apenas dois valores, então usamos z union para definição params é um parâmetro opcional, definido com z optional inclui um parâmetro inputs , do tipo record\<string, any> representando um objeto com chaves string e valores de qualquer tipo esse tipo pode representar qualquer objeto você pode obter o parâmetro count em src/index ts usando params? inputs? count acessando logs do cloudflare workers wrangler tail