fastapi-templates

This skill provides production-ready templates and scaffolding patterns for FastAPI applications.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "fastapi-templates" with this command: npx skills add first-fluke/fullstack-starter/first-fluke-fullstack-starter-fastapi-templates

FastAPI Templates

This skill provides production-ready templates and scaffolding patterns for FastAPI applications.

When to Use

  • Starting a new FastAPI service or project.

  • Adding standard components (Auth, DB, Logging) to an existing app.

  • Standardizing project structure across the team.

Project Structure Template

Recommended structure for scalable FastAPI apps:

src/ ├── api/ │ ├── v1/ │ │ ├── endpoints/ # Route handlers │ │ └── api.py # Router aggregation │ └── deps.py # Dependencies (get_current_user, etc.) ├── core/ │ ├── config.py # Pydantic BaseSettings │ └── security.py # JWT & Password hashing ├── db/ │ ├── models/ # SQLAlchemy models │ ├── session.py # DB engine and session factory │ └── base.py # Import all models here ├── schemas/ # Pydantic models (Request/Response) ├── services/ # Business logic └── main.py # App entrypoint

Code Templates

  1. Standard API Endpoint

from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.ext.asyncio import AsyncSession from src.api import deps from src.schemas.item import ItemCreate, Item from src.services import item_service

router = APIRouter()

@router.post("/", response_model=Item) async def create_item( item_in: ItemCreate, db: AsyncSession = Depends(deps.get_db), current_user = Depends(deps.get_current_user), ) -> Item: """ Create a new item. """ return await item_service.create(db, obj_in=item_in, owner_id=current_user.id)

  1. Pydantic Settings

from pydantic_settings import BaseSettings

class Settings(BaseSettings): PROJECT_NAME: str = "FastAPI App" DATABASE_URL: str SECRET_KEY: str

class Config:
    case_sensitive = True
    env_file = ".env"

settings = Settings()

  1. SQLAlchemy Async Model

from sqlalchemy import Column, Integer, String from src.db.base_class import Base

class Item(Base): id = Column(Integer, primary_key=True, index=True) title = Column(String, index=True) description = Column(String, nullable=True)

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

orchestrator

No summary provided by upstream source.

Repository SourceNeeds Review
General

commit

No summary provided by upstream source.

Repository SourceNeeds Review
General

ui-ux-pro-max

No summary provided by upstream source.

Repository SourceNeeds Review