Le SDK en conditions réelles
Ici rien n'est simulé côté serveur : votre navigateur envoie de vraies requêtes HTTP, le SDK installé dans cette application les intercepte, et vous voyez exactement ce qu'un visiteur recevrait — statut, en-têtes et corps.
Le navigateur envoie de vraies requêtes HTTP à /api/live/ping. Cette route ne contient aucun code Zarex : c'est proxy.ts qui décide, avant elle, avec Shield et un rate limit de 5 requêtes / 30s par IP.
proxy.ts
import { NextResponse } from "next/server";
import { zarexNext, shield, rateLimit } from "@zarex/next";
const guard = zarexNext({
key: process.env.ZAREX_KEY!,
ipSource: "vercel", // VPS derrière nginx : { header: "x-real-ip" }
rules: [shield(), rateLimit({ max: 5, window: "30s" })],
secureHeaders: true,
});
export async function proxy(request: Request) {
// null = autorisé ; sinon la réponse de refus toute prête
return (await guard(request)) ?? guard.finalize(NextResponse.next(), request);
}
export const config = { matcher: ["/api/live/:path*"] };Envoyez une requête : le statut HTTP, les en-têtes et le corps reçus s'afficheront ici.