🔎 Github: https://github.com/laurentS/slowapi 📖 Docs: https://slowapi.readthedocs.io/en/latest/#fastapi
简单介绍
可以使用单个或多个限制修饰器来将限制应用到端点函数上
使用内存来保存计数器(默认)
支持同步和异步HTTP端点
支持在一组路由之间共享限制
安装库
使用例子 from fastapi import FastAPIfrom slowapi import Limiter, _rate_limit_exceeded_handlerfrom slowapi.util import get_remote_addressfrom slowapi.errors import RateLimitExceededlimiter = Limiter(key_func=get_remote_address) app = FastAPI() app.state.limiter = limiter app.add_exception_handler(RateLimitExceeded, _rate_limit_exceeded_handler) @app.get("/home" ) @limiter.limit("5/minute" ) async def homepage (request: Request ): return PlainTextResponse("test" ) @app.get("/mars" ) @Limiter.limit("2/second" ) @limiter.limit("50/minute" ) async def homepage (request: Request, response: Response ): return {"key" : "value" }