Skip to content

A RBAC (Role-Based Access Control) permission control system built on FastAPI, featuring a unique pseudo-three-tier architecture design, with built-in basic implementation of fastapi admin as a template library, free and open-source

License

Notifications You must be signed in to change notification settings

fastapi-practices/fastapi_best_architecture

Repository files navigation

FastAPI Best Architecture

GitHub Static Badge Ruff Pydantic v2

Note

This repository as a template library open to any person or enterprise can be used for free!

English | 简体中文

FastAPI framework based on the front-end and back-end separation of the middle and back-end solutions, follow the pseudo three-tier architecture design, support for python3.10 and above versions

🔥Continuously updated and maintained🔥

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

Online Demo

You can view some of the preview screenshots in fastapi_best_architecture_ui

For the demo entrance, please refer to Official documentation

tester: test / 123456

super: admin / 123456

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
  • 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

TG / Discord

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

Stargazers over time

About

A RBAC (Role-Based Access Control) permission control system built on FastAPI, featuring a unique pseudo-three-tier architecture design, with built-in basic implementation of fastapi admin as a template library, free and open-source

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Languages