api-generator
Generate CRUD API endpoints automatically. User doesn't see routes.Use when: features need backend logic.Triggers: internal use only.
When & Why to Use This Skill
The API Generator Claude skill streamlines backend development by automatically creating robust CRUD API endpoints from high-level requirements. It handles the heavy lifting of resource identification, database integration, and authentication middleware across frameworks like Next.js, FastAPI, and Hono. By automating boilerplate code and generating OpenAPI documentation, it ensures consistent, secure, and well-documented backend logic without manual routing.
Use Cases
- Rapid Prototyping: Quickly generate a fully functional backend for new features like expense tracking or user management without writing boilerplate routes.
- Standardized API Development: Automatically implement best practices for pagination, filtering, and sorting across all generated endpoints.
- Automated Documentation: Maintain up-to-date OpenAPI specifications for frontend teams and third-party integrations as the backend evolves.
- Security & Validation: Ensure all endpoints are protected with auth middleware and validated against input schemas by default.
| name | api-generator |
|---|---|
| description | | |
| Use when | features need backend logic. |
| Triggers | internal use only. |
API Generator
Create endpoints from requirements. User never writes routes.
Process
Identify resources
- "Manage expenses" → /api/expenses
- "User profile" → /api/users/me
Generate CRUD
- GET (list, single)
- POST (create)
- PUT/PATCH (update)
- DELETE (remove)
Add validation
- Input schemas
- Error handling
- Auth middleware
Generate OpenAPI
- Auto-document all endpoints
- For future integrations
Template-Specific
Next.js API Routes
// app/api/expenses/route.ts
export async function GET() {
const expenses = await db.expenses.findMany();
return Response.json(expenses);
}
export async function POST(req: Request) {
const data = await req.json();
const expense = await db.expenses.create({ data });
return Response.json(expense);
}
FastAPI
@router.get("/expenses")
async def list_expenses(db: Session = Depends(get_db)):
return db.query(Expense).all()
@router.post("/expenses")
async def create_expense(data: ExpenseCreate, db: Session = Depends(get_db)):
expense = Expense(**data.dict())
db.add(expense)
db.commit()
return expense
Hono
app.get('/expenses', async (c) => {
const expenses = await db.select().from(expensesTable);
return c.json(expenses);
});
app.post('/expenses', async (c) => {
const data = await c.req.json();
const [expense] = await db.insert(expensesTable).values(data).returning();
return c.json(expense);
});
Auto-Generated Features
| Feature | Implementation |
|---|---|
| Pagination | ?page=1&limit=20 |
| Filtering | ?category=food |
| Sorting | ?sort=amount&order=desc |
| Auth | Middleware checks token |
| Validation | Schema validates input |
User Experience
User: "Add expense tracking"
Internally:
- Generate /api/expenses endpoints
- Add validation schemas
- Connect to database
- Add auth middleware
- Generate OpenAPI spec
User sees: "✅ Expense API ready"