Mediummiddleware
Что такое middleware в Django/FastAPI?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
Middleware — слой между request и view, и между response и client. В Django: список MIDDLEWARE в settings, каждый — callable.
# Django: Request phase — сверху вниз до view; Response — снизу вверх
class TimingMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
# код до view
response = self.get_response(request)
# код после view
return response
# FastAPI / Starlette
@app.middleware('http')
async def add_header(request, call_next):
response = await call_next(request)
response.headers['X-Custom'] = 'value'
return response- Встроенные Django: AuthenticationMiddleware, SessionMiddleware, CsrfViewMiddleware;
- Встроенные FastAPI: CORS, GZip, TrustedHost, Session;
- Применения: auth, logging, CORS, compression, rate limiting, request ID.
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.