Was macht convex-http-actions?
Integration externer APIs und Webhook-Verarbeitung inklusive HTTP-Endpunkt-Routing, Anfrage-/Antwortbehandlung, Authentifizierung, CORS-Konfiguration und Webhook-Signaturvalidierung.
Funktionen
- HTTP-Endpunkt-Routing: Definiere benutzerdefinierte HTTP-Endpunkte, die Anfragen entgegennehmen und verarbeiten können.
- Anfrage-/Antwortbehandlung: Analysiere eingehende HTTP-Anfragen und sende strukturierte Antworten zurück.
- Authentifizierung: Implementiere Authentifizierungslogik für geschützte Endpunkte.
- CORS-Konfiguration: Lege fest, welche Ursprünge (Origins) auf deine API zugreifen dürfen.
- Webhook-Signaturvalidierung: Überprüfe Signaturen eingehender Webhooks von Diensten wie Stripe, GitHub oder Slack.
Installation
npx convex dev
Verwendung
Grundlegendes HTTP-Routing
import { httpRouter } from "convex-http-actions";
const router = httpRouter();
router
.get("/api/hello", (req) => {
return new Response("Hello World!");
})
.post("/api/data", async (req) => {
const body = await req.json();
return Response.json({ received: true, data: body });
});
export default router;
CORS-Konfiguration
const router = httpRouter({
origins: ["https://example.com", "https://app.example.com"],
methods: ["GET", "POST"],
headers: ["Content-Type", "Authorization"],
});
Webhook-Signaturvalidierung
router.post("/webhooks/stripe", async (req) => {
const signature = req.headers.get("stripe-signature");
if (!validateStripeSignature(signature, await req.text())) {
return new Response("Unauthorized", { status: 401 });
}
// Webhook-Daten verarbeiten
return new Response("OK");
});
Konfiguration
| Option | Typ | Beschreibung |
|---|---|---|
origins | string[] | Zulässige Ursprünge für CORS |
methods | string[] | Zulässige HTTP-Methoden |
headers | string[] | Zulässige HTTP-Header |
allowedHeaders | string[] | Zusätzliche Header, die vom Client gesendet werden dürfen |
Lizenz
MIT