| name | fastapi-endpoint-scaffolder |
| description | Scaffolds a new FastAPI endpoint with Pydantic models, router registration, and tests. Use when creating new backend API endpoints. |
FastAPI Endpoint Scaffolder Workflow
This skill creates a complete FastAPI endpoint with proper structure, type safety, and testing scaffolding.
Workflow Steps
Ask for endpoint details:
- Endpoint name (e.g.,
notifications,email_templates) - HTTP methods needed (GET, POST, PUT, DELETE, PATCH)
- URL path (e.g.,
/notifications,/email/templates) - Brief description of what this endpoint does
- Endpoint name (e.g.,
Ask for model fields:
- Request model fields (e.g.,
email: str, subject: str, body: str) - Response model fields (e.g.,
id: str, status: str, sent_at: datetime) - Optional fields (mark with
Optional[type])
- Request model fields (e.g.,
Generate endpoint file:
- Read template:
.claude/skills/fastapi-endpoint-scaffolder/templates/endpoint.py.tpl - Replace placeholders:
{{ENDPOINT_NAME}}- Snake_case name (e.g.,notifications){{ENDPOINT_PATH}}- URL path (e.g.,/notifications){{ENDPOINT_DESCRIPTION}}- Brief description{{REQUEST_MODEL}}- PascalCase request model name{{RESPONSE_MODEL}}- PascalCase response model name{{HTTP_METHOD}}- HTTP method (post, get, put, delete)
- Write to:
backend/app/api/endpoints/{{ENDPOINT_NAME}}.py
- Read template:
Generate models file:
- Read template:
.claude/skills/fastapi-endpoint-scaffolder/templates/models.py.tpl - Replace placeholders:
{{MODEL_NAME}}- PascalCase model name{{REQUEST_FIELDS}}- Request model fields{{RESPONSE_FIELDS}}- Response model fields
- Write to:
backend/app/models/{{ENDPOINT_NAME}}_schemas.py
- Read template:
Update router registration:
- Read:
backend/app/api/router.py - Add import:
from .endpoints import {{ENDPOINT_NAME}} - Add router tuple:
({{ENDPOINT_NAME}}.router, "/{{ENDPOINT_PATH}}", "{{TAG_NAME}}") - Write updated file
- Read:
Update models init.py:
- Read:
backend/app/models/__init__.py - Add imports from new schema file
- Add to
__all__list - Write updated file
- Read:
Generate test file:
- Read template:
.claude/skills/fastapi-endpoint-scaffolder/templates/test_endpoint.py.tpl - Replace placeholders
- Write to:
backend/app/tests/api/test_{{ENDPOINT_NAME}}.py
- Read template:
Report success:
- List all created/modified files
- Show example curl command for testing
- Remind user to implement business logic in the endpoint
Example Usage
User: Create a new endpoint for managing user notifications