TrustedHostMiddleware
Проверяет заголовок хоста входящих запросов для предотвращения потенциальных атак заголовка хоста HTTP.
from fastapi import FastAPI
from fastapi.middleware.trustedhost import TrustedHostMiddleware
app = FastAPI()
app.add_middleware(
TrustedHostMiddleware, allowed_hosts=["example.com", "*.example.com"]
)
@app.get("/")
async def main():
return {"message": "Hello World"}
allowed_hosts- Список доменных имен, которые должны быть разрешены в качестве имен хостов. Также синтаксис поддерживает поддомены -*.example.com. Чтобы разрешить любое имя хоста можно использоватьallowed_hosts=["*"].
Если входящий запрос не будет проверен правильно, будет отправлен код ошибки 400.
HTTPSRedirectMiddleware
Обеспечивает, чтобы все входящие запросы были либо https Вместо этого любые входящие запросы к http будут перенаправлены на https.
from fastapi import FastAPI
from fastapi.middleware.httpsredirect import HTTPSRedirectMiddleware
app = FastAPI()
app.add_middleware(HTTPSRedirectMiddleware)
@app.get("/")
async def main():
return {"message": "Hello World"}
GZip Middleware
Gzip - это алгоритм сжатия. Используется очень часто для сжатия контента, передаваемого через Интернет, и учитывая, что он поддерживается браузерами, то он способен сильно уменьшить размер файлов JavaScript, CSS и HTML.
from fastapi import FastAPI
from fastapi.middleware.gzip import GZipMiddleware
app = FastAPI()
app.add_middleware(GZipMiddleware, minimum_size=1000)
@app.get("/")
async def main():
return "somebigcontent"
minimum_size- Не делать сжатие ответов, которые меньше этого минимального размера в байтах. По умолчанию500.