mirror of
https://github.com/d3vyce/fastapi-toolsets.git
synced 2026-03-01 17:00:48 +01:00
46 lines
2.7 KiB
Markdown
46 lines
2.7 KiB
Markdown
# FastAPI Toolsets
|
|
|
|
FastAPI Toolsets provides production-ready utilities for FastAPI applications built with async SQLAlchemy and PostgreSQL. It includes generic CRUD operations, a fixture system with dependency resolution, a Django-like CLI, standardized API responses, and structured exception handling with automatic OpenAPI documentation.
|
|
|
|
[](https://github.com/d3vyce/fastapi-toolsets/actions/workflows/ci.yml)
|
|
[](https://codecov.io/gh/d3vyce/fastapi-toolsets)
|
|
[](https://github.com/astral-sh/ty)
|
|
[](https://github.com/astral-sh/uv)
|
|
[](https://github.com/astral-sh/ruff)
|
|
[](https://www.python.org/downloads/)
|
|
[](https://opensource.org/licenses/MIT)
|
|
|
|
---
|
|
|
|
**Documentation**: [https://fastapi-toolsets.d3vyce.fr](https://fastapi-toolsets.d3vyce.fr)
|
|
|
|
**Source Code**: [https://github.com/d3vyce/fastapi-toolsets](https://github.com/d3vyce/fastapi-toolsets)
|
|
|
|
---
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
uv add fastapi-toolsets
|
|
```
|
|
|
|
## Features
|
|
|
|
- **CRUD**: Generic async CRUD operations with `CrudFactory`, built-in search with relationship traversal
|
|
- **Database**: Session management, transaction helpers, table locking, and polling-based row change detection
|
|
- **Dependencies**: FastAPI dependency factories (`PathDependency`, `BodyDependency`) for automatic DB lookups from path or body parameters
|
|
- **Fixtures**: Fixture system with dependency management, context support, and pytest integration
|
|
- **CLI**: Django-like command-line interface with fixture management and custom commands support
|
|
- **Standardized API Responses**: Consistent response format with `Response`, `PaginatedResponse`, and `PydanticBase`
|
|
- **Exception Handling**: Structured error responses with automatic OpenAPI documentation
|
|
- **Logging**: Logging configuration with uvicorn integration via `configure_logging` and `get_logger`
|
|
- **Pytest Helpers**: Async test client, database session management, `pytest-xdist` support, and table cleanup utilities
|
|
|
|
## License
|
|
|
|
MIT License - see [LICENSE](LICENSE) for details.
|
|
|
|
## Contributing
|
|
|
|
Contributions are welcome! Please feel free to submit issues and pull requests.
|