| name | pydantic-schema-designer |
| description | Use when creating Pydantic v2 schemas in apps/api/skillhub/schemas/ |
Pydantic Schema Designer
Schema File Pattern
Create in apps/api/skillhub/schemas/{domain}.py
Request vs Response
from pydantic import BaseModel, ConfigDict
class SkillCreate(BaseModel):
name: str
slug: str
short_desc: str
category: str
divisions: list[str]
class SkillSummary(BaseModel):
model_config = ConfigDict(from_attributes=True)
id: str
slug: str
name: str
short_desc: str
install_count: int
avg_rating: float
class SkillDetail(SkillSummary):
description: str
versions: list[SkillVersionResponse]
divisions: list[DivisionResponse]
tags: list[str]
Pagination Response
class PaginatedResponse(BaseModel, Generic[T]):
items: list[T]
total: int
page: int
page_size: int
Browse Parameters
class BrowseParams(BaseModel):
category: str | None = None
divisions: list[str] | None = None
sort: str = "trending"
page: int = 1
page_size: int = 20
search: str | None = None
References
- Skill schemas:
apps/api/skillhub/schemas/skill.py
- Used in routers:
apps/api/skillhub/routers/skills.py