【问题标题】:Rate limiting a Flask REST API限制 Flask REST API 的速率
【发布时间】:2021-03-27 14:16:46
【问题描述】:

我在我的烧瓶项目中设置了一个简单的 REST API,我正在尝试使用 flask_limiter 库对其进行速率限制。

from flask import Flask, request, redirect, session, render_template
from flask_restful import Api, Resource
from flask_limiter.util import get_remote_address

app = Flask(__name__)
api = Api(app)

# Api endpoint
class getData(Resource):
    def get(self):
        return {'data': 'data'}

api.add_resource(getData, "/data")

我尝试添加默认的@limiter.limit() 装饰器,但它似乎不起作用。当我测试它时,只有默认限制有效。

limiter = Limiter(
    app,
    key_func=get_remote_address,
    default_limits=["1000 per day", "3 per hour"]
)

class getData(Resource):
    @limiter.limit("1 per minute")
    def get(self):
        return {'data': 'data'}

不像装饰器中指定的那样将访问限制为每分钟 1 次,而是使用默认限制器值。

是否可以使用此方法对我的 API 进行速率限制,我该如何做?

【问题讨论】:

    标签: python flask flask-restful


    【解决方案1】:

    我不确定您是否已经解决了您的问题,但以下是适合您情况的方法。需要将其包含在 flask restful 提供的 method_decorators 字段中。更多信息可以在以下链接中找到。

    Flask limiter Question

    Flask restful method decorator

    【讨论】:

      猜你喜欢
      • 2019-12-08
      • 2021-01-07
      • 1970-01-01
      • 2021-06-15
      • 2014-06-09
      • 2010-10-11
      • 2020-11-04
      • 1970-01-01
      相关资源
      最近更新 更多