如何使用django-ratelimit进行石墨烯解析

时间:2019-07-13 08:24:02

标签: django graphene-python

我们不能直接将django-ratelimit用于graphql解析方法。 因为默认的装饰器是从第一个参数获取请求。

1 个答案:

答案 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)