【问题标题】:Graphen Django: Batch requests should receive a list, but received {'query': XXX}Graphen Django:批处理请求应该收到一个列表,但收到 {'query': XXX}
【发布时间】:2021-01-15 18:53:22
【问题描述】:

我通过将 batch=True 添加到 .as_view(...) 方法中启用了 Graphene-Django 中的批量查询处理功能,

urlpatterns = [
    # other URL patterns,
    path('graphql/', CustomGraphQLView.as_view(schema=schema, batch=True), name='graphql')
]

之后,我使用Postman 客户端向服务器发送了带有查询的请求(见下面的屏幕截图),但出现了错误

GraphQL 查询

{
  musicians {
    id
    name
  }
}

错误响应

{ “错误”:[ { "message": "批处理请求应该收到一个列表,但是收到了 {'query': 'bla bla'}" } ] }

邮递员截图

问题

  1. GraphQL 批处理请求 发送到 Graphene-Django 的正确方法是什么?
  2. 如何使用 Postman 客户端向 Graphene-Django 发送 GraphQL 批处理请求

【问题讨论】:

    标签: python graphql graphene-python graphene-django


    【解决方案1】:

    Graphene-Django 期望查询为 dicts 列表(或 JSON 对象的 JSON 数组)。

    所以你需要构建一个有效载荷,

    [
        {
            "query": "{musicians{id}}"
        },
        {
            "query": "{musicians{name}}"
        },
        {
            "query": "{musicians{id,name,}}"
        }
    ]
    

    确保请求应该以 原始 JSON 从 POSTMAN 客户端(或任何 非 GraphQL 客户端)发送 p>

    结果截图

    【讨论】:

      猜你喜欢
      • 2018-05-31
      • 2022-11-20
      • 2015-09-02
      • 1970-01-01
      • 2015-07-23
      • 2018-07-23
      • 1970-01-01
      • 2011-12-20
      • 1970-01-01
      相关资源
      最近更新 更多