Guides d’intégration
Cloudflare Workers
Appeler Orbit depuis un Worker avec une liaison secrète.
Enregistrez la clé comme secret Worker :
wrangler secret put ORBIT_API_KEYDéfinissez l’URL de base comme variable serveur ou constante contrôlée, jamais à partir d’une entrée utilisateur.
interface Env {
ORBIT_API_KEY: string;
ORBIT_BASE_URL: string;
}
export default {
async fetch(request: Request, env: Env): Promise<Response> {
const incoming = new URL(request.url);
const query = incoming.searchParams.get("q")?.trim() ?? "";
if (!query || query.length > 100) {
return Response.json({ error: "invalid_query" }, { status: 400 });
}
const orbitUrl = new URL(`${env.ORBIT_BASE_URL}/v1/interests/search`);
orbitUrl.searchParams.set("q", query);
orbitUrl.searchParams.set("limit", "20");
const response = await fetch(orbitUrl, {
headers: { Authorization: `Bearer ${env.ORBIT_API_KEY}` },
signal: AbortSignal.timeout(5_000),
});
const headers = new Headers({
"content-type": "application/json",
"cache-control": "private, no-store",
});
for (const name of [
"x-request-id",
"x-ratelimit-limit",
"x-ratelimit-remaining",
"x-ratelimit-reset",
"x-orbit-daily-ratelimit-limit",
"x-orbit-daily-ratelimit-remaining",
"x-orbit-daily-ratelimit-reset",
"retry-after",
]) {
const value = response.headers.get(name);
if (value) headers.set(name, value);
}
return new Response(response.body, {
status: response.status,
headers,
});
},
};Ajoutez l’authentification et les limites propres à votre application. Ne renvoyez jamais env, l’en-tête envoyé à Orbit ou la clé dans les journaux.