Skill

Generate FastAPI Routers with Auth and Models

A FastAPI router skill that scaffolds REST endpoints with authentication patterns, response models, and proper HTTP status codes following established

Works with fastapi

46
Spark score
out of 100
Updated today
Version 13.1.1

Add to Favorites

Why it matters

Automate the creation of robust FastAPI routers, ensuring adherence to best practices for authentication, response modeling, and HTTP status codes.

Outcomes

What it gets done

01

Generate boilerplate code for FastAPI routers.

02

Implement standard authentication patterns (optional and required).

03

Define response models for API endpoints.

04

Set appropriate HTTP status codes for CRUD operations.

Install

Add it to your toolbox

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/ag-fastapi-router-py | bash

Capabilities

What this skill does

Generate code

Writes source code or scripts from a description.

Review code

Analyzes code for bugs, style issues, and improvements.

Debug

Traces errors to their root cause and suggests fixes.

Overview

FastAPI Router

What it does

This skill provides a template-based approach to creating FastAPI routers with established patterns. It includes authentication patterns (optional and required), response model typing with Pydantic, proper HTTP status codes (201 for creation, 204 for deletion), and a structured integration workflow. You copy the template, replace placeholders with your resource names in PascalCase and snake_case, then mount the router in your FastAPI application.

How it connects

Use this skill when building REST API endpoints in FastAPI applications that require consistent authentication handling, typed response models, and proper HTTP semantics. It's ideal when you need to quickly scaffold new resource routers following team conventions, or when you want to ensure your endpoints use correct status codes and authentication dependencies.

Source README

FastAPI Router

Create FastAPI routers following established patterns with proper authentication, response models, and HTTP status codes.

Quick Start

Copy the template from assets/template.py and replace placeholders:

  • {{ResourceName}} → PascalCase name (e.g., Project)
  • {{resource_name}} → snake_case name (e.g., project)
  • {{resource_plural}} → plural form (e.g., projects)

Authentication Patterns

# Optional auth - returns None if not authenticated
current_user: Optional[User] = Depends(get_current_user)

# Required auth - raises 401 if not authenticated
current_user: User = Depends(get_current_user_required)

Response Models

@router.get("/items/{item_id}", response_model=Item)
async def get_item(item_id: str) -> Item:
    ...

@router.get("/items", response_model=list[Item])
async def list_items() -> list[Item]:
    ...

HTTP Status Codes

@router.post("/items", status_code=status.HTTP_201_CREATED)
@router.delete("/items/{id}", status_code=status.HTTP_204_NO_CONTENT)

Integration Steps

  1. Create router in src/backend/app/routers/
  2. Mount in src/backend/app/main.py
  3. Create corresponding Pydantic models
  4. Create service layer if needed
  5. Add frontend API functions

When to Use

This skill is applicable to execute the workflow or actions described in the overview.

Limitations

  • Use this skill only when the task clearly matches the scope described above.
  • Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
  • Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.