SDKs

Node.js / TypeScript

Thunderbit Open API 的地道 Node.js 写法

Thunderbit API 直接搭配 Node 18+ 内置的 fetch 就能用 —— 不需要 SDK。需要 HTTP/2 和大规模连接池时,换成 undiciaxios

配置

const API = "https://openapi.thunderbit.com/openapi/v1";
const H = {
  "Authorization": `Bearer ${process.env.THUNDERBIT_API_KEY}`,
  "Content-Type": "application/json",
};

Distill 一个页面

const r = await fetch(`${API}/distill`, {
  method: "POST",
  headers: H,
  body: JSON.stringify({ url: "https://thunderbit.com/playground" }),
});
const { data } = await r.json();
console.log(data.markdown);

Extract 结构化数据

type Product = { name: string; price: number; currency?: string };

const r = await fetch(`${API}/extract`, {
  method: "POST",
  headers: H,
  body: JSON.stringify({
    url: "https://example.com/product/iphone-15-pro",
    schema: {
      type: "object",
      properties: {
        name:  { type: "string" },
        price: { type: "number" },
      },
      required: ["name", "price"],
    },
  }),
});
const { data } = await r.json() as { data: Product };

Batch + Webhook(TypeScript)

const job = await fetch(`${API}/batch/distill`, {
  method: "POST",
  headers: H,
  body: JSON.stringify({
    urls: ["https://example.com/page1", "https://example.com/page2"],
    webhook: {
      url:    "https://your-server.com/webhook",
      secret: process.env.WEBHOOK_SECRET,
    },
  }),
}).then(r => r.json());

在 handler 里校验 webhook 签名 —— 详见 Webhooks

官方 Node.js SDK 正在开发中,敬请期待。