GraphQL 变异体解析器

Posted

技术标签:

【中文标题】GraphQL 变异体解析器【英文标题】:GraphQL Mutation Body Parser 【发布时间】:2018-05-31 09:24:35 【问题描述】:

刚刚更新到 'graphql-server-express' 版本 1.3.0,现在运行任何突变时出现此错误:

POST body missing. Did you forget use body-parser middleware?

初始化服务器时,我包含了“body-parser”包,所以我不确定这里发生了什么。有什么想法吗?

服务器配置:

    //GraphQL Server
    graphQLServer.use(

        //GRAPHQL Endpoint
        `/$settings.public.graphql.endpoint`,

        //Parse JSON
        bodyParser.json(),

        //authenticate
        authenticateRequest,

        //GRAPHQL Server
        graphqlExpress(req => 

            return 
                schema: schema,
                context: req
            
        )

    );

示例请求:

curl 'http://localhost:5050/graphql' \
  -H 'authorization: Bearer xxxxxxxxxxx.xxxxxxxxxxx' \
  -d '
    "query": "mutation  sensorData(sensorValue: \u0027asdasdasdasd \u0027)",
    "variables": 
    
  '

【问题讨论】:

【参考方案1】:

在请求中设置Content-Type: application/json标头(docs)

curl 'http://localhost:5050/graphql' \
  -H "Content-Type: application/json" \
  -H 'authorization: Bearer xxxxxxxxxxx.xxxxxxxxxxx' \
  -d '
    "query": "mutation  sensorData(sensorValue: \u0027asdasdasdasd \u0027)",
    "variables": 
    
  '

【讨论】:

感谢保佑!添加 Content-Type 对我有用。感谢您的意见:)

以上是关于GraphQL 变异体解析器的主要内容,如果未能解决你的问题,请参考以下文章

graphql-yoga - GraphQL 解析器参数在哪里定义和记录?

GraphQL 解析器应该有多懒?

GraphQL 解析器问题

Apollo GraphQL - 未触发解析器

NodeJs 中的 GraphQl - 对象类型的解析器

graphql 解析器优化