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 подскажет развёрнутый ответ в реальном времени.