fastapi-development
Enforces best practices for FastAPI development, ensuring scalable, high-performance, and maintainable APIs. Use when working on server-side Python code involving FastAPI.
Installation
Suivez les instructions du dépôt pour votre agent. Consultez les fichiers et dépendances avant l’installation.
Voir la source ↗GuidesInstructions
FastAPI Development Standards
Key Principles
- Concise & Technical: Write accurate, functional code.
- Functional Style: Prefer pure functions over classes for routes and logic.
- RORO Pattern: "Receive an Object, Return an Object". Use Pydantic models for all inputs and outputs.
Architecture & Structure
-
File Naming: Lowercase with underscores (e.g.,
routers/user_routes.py). - Exports: Favor named exports.
- Organization: Separate exported routers, sub-routes, utilities, static content, and types (models/schemas).
Coding Standards
- Type Hints: Mandatory for all function signatures.
- Validation: Use Pydantic models (v2) instead of raw dictionaries.
- Conditionals: Avoid unnecessary curly braces. Use one-line syntax for simple conditionals.
-
Async/Sync:
- Use
async deffor I/O-bound operations (DB, external APIs). - Use
deffor CPU-bound synchronous tasks.
- Use
Error Handling
- Early Returns: Handle errors/edge cases first. Happy path goes last.
- Guard Clauses: Validate preconditions early.
-
HTTPExceptions: Use
HTTPExceptionfor expected errors. - No Nested Ifs: Avoid deep nesting.
Performance
- Non-blocking: Minimize blocking I/O. Use async libraries (asyncpg, aiomysql).
- Caching: Implement strategies for frequent data.
- Lazy Loading: Use for large datasets.
Dependencies
- FastAPI
- Pydantic v2
- SQLAlchemy 2.0 (if ORM used)
Exemples
Consultez les exemples du dépôt source.
Voir la source ↗Historique source
- Date d’indexation
- 2026-01-20
- Mise à jour de l’index
- 2026-01-26
- Branch
- main
Les dates concernent ce répertoire. Consultez le dépôt pour l’historique du code.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!