VKC API Route Pattern
When to use
- •Creating new endpoints under
src/app/api/** - •Refactoring existing endpoints to match house style
House style (this repo)
- •Auth:
getSession(user) orgetAdminSession(admin) - •DB:
dbfrom@/lib/db, tables from@/lib/db/schema - •Rate limit (if needed):
checkRateLimit+rateLimitResponse - •Responses:
- •Public APIs: prefer
@/lib/api/responsehelpers - •Admin APIs: typically
NextResponse.json(...)directly (keep consistent within/api/admin/**)
- •Public APIs: prefer
- •Validation: this repo uses Zod. For new/refactor APIs, prefer
@/lib/api/validation(src/lib/api/validation.ts) helpers likevalidateBody+createJsonBodyReader.
Canonical references
- •Public route w/ validation + rate-limit:
src/app/api/reports/route.ts - •Public route w/ typed allowlists:
src/app/api/events/route.ts - •Admin CRUD + schedule fields:
src/app/api/admin/news/route.ts - •Validation helpers:
src/lib/api/validation.ts
Template
- •Full skeleton (copy + customize):
.codex/skills/vkc-api-route-pattern/references/api-route-template.ts