@@ -30,64 +30,66 @@ docker compose up
3030Обзор и детали данного шаблона
3131## Найболее используемые
3232Найболее используемые конструкции с которыми приходится часто взаимодействовать.
33- - registration routers
34- - В каждом приложений необходимо инициализировать router
35- ``` python
36- # api/users/views.py
37- from fastapi import APIRouter
33+ ### Registration Routers
34+ - В каждом приложений необходимо инициализировать router
35+ ``` python
36+ # api/users/views.py
37+ from fastapi import APIRouter
3838
3939
40- router = APIRouter(prefix = ' /users' ,
41- tags = [' Users' ],
42- )
43- ```
44- - Затем зарегистрировать роутер
45- ```python
46- # api_v1/routers.py
47- from api_v1.users.views import router as users
40+ router = APIRouter(
41+ prefix = ' /users' ,
42+ tags = [' Users' ],
43+ )
44+ ```
45+ - Затем зарегистрировать роутер
46+ ``` python
47+ # api_v1/routers.py
48+ from api_v1.users.views import router as users
49+ from config import settings
4850
4951
50- # В этой функции нужно по порядку регистрировать routers
51- def register_routers (app : FastAPI) -> None :
52- app.include_router(
53- router = users,
54- prefix = settings.API_PREFIX ,
55- )
56- ```
57- После регистрации данные маршруты будут доступны.
58- - registration logs
59- - Логи захватывают все исключения возникшие в системе
60- и с помошью дисперичизации распределяется по нужным ** file .log**
61- ```python
62- # app_includes/logs_errors.py
63- from fastapi import FastAPI
64- from api_v1.exeptions import ValidationError
52+ # В этой функции нужно по порядку регистрировать routers
53+ def register_routers (app : FastAPI) -> None :
54+ app.include_router(
55+ router = users,
56+ prefix = settings.API_PREFIX ,
57+ )
58+ ```
59+ После регистрации данные маршруты будут доступны.
60+ ### Registration Logs
61+ - Логи захватывают все исключения возникшие в системе
62+ и с помошью дисперичизации распределяется по нужным ** file.log**
63+ ``` python
64+ # app_includes/logs_errors.py
65+ from fastapi import FastAPI
66+ from api_v1.exeptions import ValidationError
6567
6668
67- # В данной функции регистрируются все исключения для захватывания Логами
68- def register_errors (app : FastAPI) -> None :
69- @app.exception_handler (ValidationError)
70- async def validation_error_handler (
71- request : Request,
72- exc : ValidationError,
73- ):
74- logger.opt(exception = True ).warning(exc)
75- response = dict (
76- status = False ,
77- error_code = exc.status_code,
78- message = exc.detail,
79- )
80- return JSONResponse(response)
81- ```
82- - Если вы пишете пользовательское исключение например:
83- ```python
84- from starlette.exceptions import HTTPException
69+ # В данной функции регистрируются все исключения для захватывания Логами
70+ def register_errors (app : FastAPI) -> None :
71+ @app.exception_handler (ValidationError)
72+ async def validation_error_handler (
73+ request : Request,
74+ exc : ValidationError,
75+ ):
76+ logger.opt(exception = True ).warning(exc)
77+ response = dict (
78+ status = False ,
79+ error_code = exc.status_code,
80+ message = exc.detail,
81+ )
82+ return JSONResponse(response)
83+ ```
84+ - Если вы пишете пользовательское исключение например:
85+ ``` python
86+ from starlette.exceptions import HTTPException
8587
8688
87- class ValidationError (HTTPException ):
89+ class ValidationError (HTTPException ):
8890
89- pass
90- ```
91- То вам нужно его зарегистрировать как было показанно выше,
92- иначе logs не смогут выявить данное исключение и данные будут потеряны .
93- - registration middlaware
91+ pass
92+ ```
93+ То вам нужно его зарегистрировать как было показанно выше,
94+ иначе logs не смогут выявить данное исключение и данные будут утеряны .
95+ ### Registration Middlaware
0 commit comments