FastAPI Best Architecture
English | 简体中文
A backend and frontend separation solution based on the FastAPI framework, following the pseudo three-tier architecture design, supporting Python 3.10 and above versions
🔥Continuously updated and maintained🔥
Note
This repository as a template library open to any person or enterprise can be used for free!
Pseudo three-tier architecture
The mvc architecture is a common design pattern in python web, but the three-tier architecture is even more fascinating
In python web development, there is no common standard for the concept of three-tier architecture, so we'll call it a pseudo three-tier architecture here
But please note that we don't have a traditional multi-app structure (django, springBoot...) If you don't like this pattern, use templates to transform it to your heart's content!
| workflow | java | fastapi_best_architecture |
|---|---|---|
| view | controller | api |
| data transmit | dto | schema |
| business logic | service + impl | service |
| data access | dao / mapper | crud |
| model | model / entity | model |
Features
- Design with FastAPI PEP 593 Annotated Parameters
- Global asynchronous design with async/await + asgiref
- Follows Restful API specification
- Global SQLAlchemy 2.0 syntax
- Pydantic v1 and v2 (different branches)
- Casbin RBAC access control model
- Role menu RBAC access control model
- Celery asynchronous tasks
- JWT middleware whitelist authentication
- Global customizable time zone time
- Docker / Docker-compose deployment
- Pytest Unit Testing
Built-in features
- User management: management of system user roles, assignment of permissions
- Departmental management: Configuration of the system organization (company, department, group, ...)
- Menu management: Configuration of system menus, user menus, button permission labels
- Role management: assignment of role menu privileges, assignment of role routing privileges
- Dictionary management: maintenance of commonly used fixed data or parameters within the system
- Token management:System user online status detection, supports kicking user offline
- Code generation: back-end code is automatically generated, supporting preview, write and download.
- Operation log: logging and querying of normal and abnormal system operations.
- Login authentication: graphical captcha backend authentication login
- Logging: logging and querying of normal and abnormal user logins
- Service monitoring: server hardware device information and status
- Timed tasks: automated tasks, asynchronous tasks, support for function calls
- Interface Documentation: Automatically generate online interactive API interface documentation.
Development and deployment
For more details, please check the official documentation
Contributors
Special thanks
Interactivity
Sponsor us
If this program has helped you, you can sponsor us with some coffee beans: ☕ Sponsor ☕
License
This project is licensed by the terms of the MIT license