Claude-skill-registry fastapi-endpoint-scaffolder
Scaffolds a new FastAPI endpoint with Pydantic models, router registration, and tests. Use when creating new backend API endpoints. Related: pydantic-model-scaffolder for complex model validation.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/fastapi-endpoint-scaffolder" ~/.claude/skills/majiayu000-claude-skill-registry-fastapi-endpoint-scaffolder && rm -rf "$T"
manifest:
skills/data/fastapi-endpoint-scaffolder/SKILL.mdsource content
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:
- Snake_case name (e.g.,{{ENDPOINT_NAME}}
)notifications
- URL path (e.g.,{{ENDPOINT_PATH}}
)/notifications
- Brief description{{ENDPOINT_DESCRIPTION}}
- PascalCase request model name{{REQUEST_MODEL}}
- PascalCase response model name{{RESPONSE_MODEL}}
- HTTP method (post, get, put, delete){{HTTP_METHOD}}
- 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:
- PascalCase model name{{MODEL_NAME}}
- Request model fields{{REQUEST_FIELDS}}
- Response model fields{{RESPONSE_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
list__all__ - 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