mirror of
https://github.com/fastapi-practices/fastapi_best_architecture.git
synced 2025-08-19 07:21:31 +08:00

* WIP: add rbac authorization * Perform pre-commit fixes * add rbac route whitelist * add init test data user role associations * Restore database table id naming to fix generic crud base * Add database section value uniqueness settings * Update the test directory to tests * Update route_name file name to health_check * Split user auth and user action interfaces * Fix conflict between merge and current branch * Add pymysql dependencies * Fix RBAC authentication method * Add the select serialisation tool * Fix missing return messages due to global exception handler slicing * Update the user interface with associated relationships * Add items to be completed * Perform pre-commit fixes * Add pre-made routers * Paging data return structure optimisation * Split user auth and user interface tests * Fix user register test data structure error * Fix duplicate named test classes
62 lines
2.6 KiB
Python
62 lines
2.6 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
from fastapi import APIRouter, Request
|
|
from fastapi.routing import APIRoute
|
|
|
|
from backend.app.common.casbin_rbac import DependsRBAC
|
|
from backend.app.common.response.response_schema import response_base
|
|
from backend.app.core.conf import settings
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get('', summary='获取系统配置', dependencies=[DependsRBAC])
|
|
async def get_sys_config():
|
|
return response_base.success(
|
|
data={
|
|
'title': settings.TITLE,
|
|
'version': settings.VERSION,
|
|
'description': settings.DESCRIPTION,
|
|
'docs_url': settings.DOCS_URL,
|
|
'redocs_url': settings.REDOCS_URL,
|
|
'openapi_url': settings.OPENAPI_URL,
|
|
'environment': settings.ENVIRONMENT,
|
|
'static_files': settings.STATIC_FILES,
|
|
'uvicorn_host': settings.UVICORN_HOST,
|
|
'uvicorn_port': settings.UVICORN_PORT,
|
|
'uvicorn_reload': settings.UVICORN_RELOAD,
|
|
'db_host': settings.DB_HOST,
|
|
'db_port': settings.DB_PORT,
|
|
'db_user': settings.DB_USER,
|
|
'db_database': settings.DB_DATABASE,
|
|
'db_charset': settings.DB_CHARSET,
|
|
'redis_host': settings.REDIS_HOST,
|
|
'redis_port': settings.REDIS_PORT,
|
|
'redis_database': settings.REDIS_DATABASE,
|
|
'redis_timeout': settings.REDIS_TIMEOUT,
|
|
'aps_redis_host': settings.APS_REDIS_HOST,
|
|
'aps_redis_port': settings.APS_REDIS_PORT,
|
|
'aps_redis_database': settings.APS_REDIS_DATABASE,
|
|
'aps_redis_timeout': settings.APS_REDIS_TIMEOUT,
|
|
'aps_coalesce': settings.APS_COALESCE,
|
|
'aps_max_instances': settings.APS_MAX_INSTANCES,
|
|
'aps_misfire_grace_time': settings.APS_MISFIRE_GRACE_TIME,
|
|
'token_algorithm': settings.TOKEN_ALGORITHM,
|
|
'token_expire_minutes': settings.TOKEN_EXPIRE_MINUTES,
|
|
'token_url': settings.TOKEN_URL_SWAGGER,
|
|
'log_file_name': settings.LOG_FILE_NAME,
|
|
'middleware_cors': settings.MIDDLEWARE_CORS,
|
|
'middleware_gzip': settings.MIDDLEWARE_GZIP,
|
|
'middleware_access': settings.MIDDLEWARE_ACCESS,
|
|
}
|
|
)
|
|
|
|
|
|
@router.get('/routers', summary='获取所有路由', dependencies=[DependsRBAC])
|
|
async def get_all_route(request: Request):
|
|
data = []
|
|
for route in request.app.routes:
|
|
if isinstance(route, APIRoute):
|
|
data.append({'path': route.path, 'name': route.name, 'summary': route.summary, 'methods': route.methods})
|
|
return response_base.success(data={'route_list': data})
|