@limiter.limit("5/minute")
async def myendpoint(request: Request)
pass
from slowapi import Limiter
limiter = Limiter(key_func=get_remote_address)
@app.middleware("http")
async def check_request(request: Request, call_next):
client_ip = request.client.host
prefix = "request_rate_limiter." + client_ip
#... (logic from slowapi to get allowed flag)
if allowed:
response = await call_next(request)
return response
但是我没有找到解决方案如何从限制器接收布尔值
我会从中继续进行操作吗?
如果我可以为不同的路线进行配置,并且取决于用户订阅(例如免费/premium),那就太好了。 thanks!
要对所有路线应用全局(默认)限制,您可以使用the(如下示例所示)来执行此操作。可以找到相关的文档。
SlowAPIMiddleware