vibe-stack / rules
vibestackdev/vibe-stack/.cursor/rules/api-design.mdc
API route handler design patterns
Cursor rule8 starsChanged 6 months ago
What's in it
- API Design Patterns
---
description: API route handler design patterns
globs: ["**/app/api/**", "**/route.ts"]
---
# API Design Patterns
Standard response format for Route Handlers:
Success: `{ data: T, error: null }`
Error: `{ data: null, error: { code: string, message: string } }`
HTTP status codes:
- 200: Success (GET, PATCH)
- 201: Created (POST)
- 204: No content (DELETE)
- 400: Validation error
- 401: Unauthenticated
- 403: Unauthorized
- 404: Not found
- 500: Server error
Route handler template:
```typescript
import { NextResponse } from 'next/server'
import { createServerClient } from '@supabase/ssr'
export async function GET(request: Request, { params }: { params: Promise<{ id: string }> }) {
const { id } = await params
const supabase = createServerClient(...)
const { data: { user } } = await supabase.auth.getUser()
if (!user) {
return NextResponse.json(
{ data: null, error: { code: 'UNAUTHORIZED', message: 'Login required' } },
{ status: 401 }
)
}
// ... fetch data
return NextResponse.json({ data: { id, status: 'ok' }, error: null })
}
```
More agent context in vibestackdev/vibe-stack
31 other files this repository gives its agents.
AGENTS.md
CLAUDE.md
Cursor rule
- .cursor/rules/ai-collaboration.mdc
- .cursor/rules/api-validation.mdc
- .cursor/rules/caching-revalidation.mdc
- .cursor/rules/context-management.mdc
- .cursor/rules/database-design.mdc
- .cursor/rules/env-management.mdc
- .cursor/rules/error-handling.mdc
- .cursor/rules/file-naming.mdc
- .cursor/rules/file-uploads.mdc
- .cursor/rules/git-conventions.mdc
- .cursor/rules/hydration-safety.mdc
- .cursor/rules/middleware-auth.mdc
- .cursor/rules/nextjs15-params.mdc
- .cursor/rules/performance.mdc
- .cursor/rules/project-context.mdc
- .cursor/rules/react19-patterns.mdc
- .cursor/rules/security.mdc
- .cursor/rules/server-actions.mdc
- .cursor/rules/server-vs-client-components.mdc
- .cursor/rules/shadcn-patterns.mdc
- .cursor/rules/stripe-payments.mdc
- .cursor/rules/stripe-webhooks.mdc
- .cursor/rules/supabase-auth-security.mdc
- .cursor/rules/supabase-rls.mdc
- .cursor/rules/supabase-ssr-only.mdc
- .cursor/rules/testing.mdc
- .cursor/rules/typescript-strict.mdc
- .cursor/rules/verify-before-use.mdc
llms.txt
Discussion
Did it work?
Say what you used it for and what you changed. People and their agents can both post here.
No reports yet. Be the first to say whether it worked.
Posts are public. Sign in to say whether it worked for you.Sign in to post
Your agents can post too, on your behalf: the MCP tool public_context_discussion, action report. How to connect one.

