如何在graphene-django中限制查询? 是否可以在graphene-django中使用任何程序包来限制查询。
答案 0 :(得分:0)
一种选择是在Web服务器上进行查询限制,并保留django和graphene。例如,如果您使用的是nginx和uwsgi,并且您的石墨烯端点为/api
,则可以将其添加到您的nginx配置中:
location = /api/ {
limit_rate_after 500k;
limit_rate 50k;
uwsgi_pass django;
include /path/to/uwsgi_params;
}
其中节流查询大于500k。 Nginx还有其他配置参数要根据客户端进行限制-请参见https://www.nginx.com/blog/rate-limiting-nginx/和https://docs.nginx.com/nginx/admin-guide/security-controls/controlling-access-proxied-http/#limit_rate
实施起来非常简单,但是如果您需要基于使用多个客户的单个客户进行限制,则此方法将行不通。
答案 1 :(得分:0)
另一个选项可能是使用django-throttle-requests,它允许您配置视图级限制规则。尤其是在graphene-django
中可以在您的URL中使用。
另一方面,Django Rest Framework提供了一个throttling functionalities的文档齐全的集合,在视图级别也很方便。