РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
271 of 307 menu

Класс GZipMiddleware

Класс GZipMiddleware применяется к приложению FastAPI и автоматически сжимает тело ответа алгоритмом GZip. Сжатие выполняется только в том случае, если клиент прислал заголовок Accept-Encoding со значением gzip. Первым параметром передаётся приложение, вторым - минимальный размер ответа minimum_size в байтах, при котором включается сжатие. Третьим параметром передаётся compresslevel - уровень сжатия от 1 до 9.

Сжатие уменьшает объём передаваемых данных, но увеличивает нагрузку на процессор. Поэтому мелкие ответы сжимать невыгодно, и параметр minimum_size отсекает их.

Синтаксис

from fastapi import FastAPI from fastapi.middleware.gzip import GZipMiddleware app = FastAPI() app.add_middleware(GZipMiddleware, minimum_size=1000, compresslevel=9)

Пример

Давайте подключим сжатие с минимальным размером ответа в 1000 байт:

from fastapi import FastAPI from fastapi.middleware.gzip import GZipMiddleware app = FastAPI() app.add_middleware(GZipMiddleware, minimum_size=1000) @app.get('/') def index(): return {'text': 'abcde' * 500}

Если клиент пришлёт заголовок Accept-Encoding: gzip, то ответ будет сжат, а в заголовках появится Content-Encoding: gzip. Результат выполнения кода в виде заголовков ответа:

{"content-encoding": "gzip", "vary": "Accept-Encoding"}

Пример

Давайте зададим уровень сжатия compresslevel равным 5 и минимальный размер 500 байт:

from fastapi import FastAPI from fastapi.middleware.gzip import GZipMiddleware app = FastAPI() app.add_middleware( GZipMiddleware, minimum_size=500, compresslevel=5 ) @app.get('/article') def article(): return {'text': 'article ' * 100}

Чем выше уровень сжатия, тем сильнее сжимается ответ, но тем больше времени тратит процессор. Значение 9 даёт максимальное сжатие, значение 1 - самое быстрое.

Смотрите также

  • класс CORSMiddleware,
    который настраивает кросс-доменные запросы
  • класс TrustedHostMiddleware,
    который ограничивает список доверенных хостов
  • класс HTTPSRedirectMiddleware,
    который перенаправляет запросы на HTTPS
  • параметр max_age,
    который задаёт время кеширования CORS-ответов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить