Приходилось ли кастомизировать по FastAPI
Python
Junior
Без компании
Приходилось ли кастомизировать по FastAPI
Ответы
Да, приходилось. FastAPI позволяет легко кастомизировать различные аспекты приложения.
**Примеры кастомизации:**
- **Кастомные валидаторы** через `@validator` в Pydantic:
```
from pydantic import BaseModel, validator
class User(BaseModel):
name: str
@validator('name')
def name_must_contain_space(cls, v):
if ' ' not in v:
raise ValueError('Name must contain a space')
return v.title()
```
- **Кастомные middleware**:
```
from fastapi import FastAPI, Request
app = FastAPI()
@app.middleware("http")
async def add_process_time_header(request: Request, call_next):
response = await call_next(request)
response.headers["X-Custom-Header"] = "Custom Value"
return response
```
- **Кастомные обработчики ошибок**:
```
from fastapi import FastAPI, HTTPException
from fastapi.responses import JSONResponse
app = FastAPI()
@app.exception_handler(ValueError)
async def value_error_handler(request, exc):
return JSONResponse(status_code=400, content={"message": str(exc)})
```
Также можно кастомизировать OpenAPI-документацию, зависимости, маршрутизацию и т.д. FastAPI гибок и расширяем.