繁体   English   中英

限速 Flask REST API

[英]Rate limiting a Flask REST API

我在我的 flask 项目中设置了一个简单的 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 进行速率限制,我该怎么做?

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

Flask限幅器问题

Flask 宁静方法装饰器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM