0

我是graphql的新手。我正在使用express-graphql在 REST API 上为petSore模式生成 graphql 查询。我能够使用 graphql Queries获得 GET API 的结果,但我无法使用Mutations获得 POST/PUT API 的响应。) 要创建宠物,我使用突变作为,

 mutation {
     addPet(body: {id: "111", name: "doggie", photoUrls:["http://localhost:3000/pics/doggie"]}) {
          name,
          id
     }
 }

在 localhost:3000/graphql 上运行此查询时,我在后端(nodejs 错误)上遇到错误,因为,

uncaughtException: First argument must be a string or Buffer...

如果有人帮助我理解我在这里做错了什么,那就太好了......

Node.js 代码:

'use strict';
 var graphqlHTTP = require('express-graphql');
 var graphQLSchema = require('swagger-to-graphql');
 var pathToSwaggerSchema = require('./schema.json');

 module.exports = function(server) {
 var router = server.loopback.Router();
 router.get('/', server.loopback.status());
 graphQLSchema(pathToSwaggerSchema).then(schema => {
 server.use('/graphql', graphqlHTTP((req) => {
    return {
      schema: schema,
      context: {
      GQLProxyBaseUrl: 'http://localhost:3000/api/v2/',
    },
    graphiql: true,
  };
}));
  }).catch(e => {
   throw e;
  });
  server.use(router);
 };

我必须遵循的过程是:

  1. 将 swagger 转换为 graphql 模式。
  2. 提供生成的 graphql 模式作为 express-graphql 的输入。
  3. GQLProxyBaseUrl 是所有 petstore REST API 的后端 url。
4

1 回答 1

0

代码中未添加突变声明。请添加突变

提供了了解如何进行突变的 链接 在此处输入链接描述

于 2019-04-25T11:15:20.000 回答