HTTP & API Validation
Production patterns for validating REST API bodies, query params, and headers in Next.js and Node.js.
Next.js Route Handler Pattern
Validate JSON payloads inside Next.js App Router route handlers:
Schema Definition
// app/api/users/route.ts
import { infer } from "subatom-infer";
import { NextResponse } from "next/server";
const CreateUserSchema = infer.object({
email: infer.string().email(),
password: infer.string().min(8),
role: infer.enum(["member", "admin"]).default("member")
});
export async function POST(req: Request) {
const body = await req.json();
const parsed = CreateUserSchema.safeParse(body);
if (!parsed.success) {
return NextResponse.json({ errors: parsed.error.flatten() }, { status: 422 });
}
// parsed.data is safe and typed
return NextResponse.json({ user: parsed.data });
}Node.js HTTP Handler Pattern
Standard middleware pattern for generic Node.js servers and frameworks like Express, Fastify, or Hono.
