我们不能直接将django-ratelimit
用于graphql解析方法。
因为默认的装饰器是从第一个参数获取请求。
答案 0 :(得分:1)
我写了simple decorator,它可以与gql:xxxx
一起支持django-ratelimit
之类的键,这里是演示:
class TestMutaion(graphene.Mutation):
class Arguments:
phone = graphene.String(required=True)
ok = graphene.Boolean()
@ratelimit(key="gql:phone", rate="5/m", block=True) # here key: 'gql:phone'
def mutate(self, info, phone):
request = info.context
# Do sth
return Test(ok=True)