当前位置: 首页 > 知识库问答 >
问题:

GraphQL,使用 GraphiQL 查询的语法不正确

常甫
2023-03-14

刚接触 GraphQL,我在通过 GraphiQL 发送查询时遇到问题。

这是我的方案. js

const graphql = require('graphql');
const _ = require('lodash');
const{
    GraphQLObjectType,
    GraphQLInt,
    GraphQLString,
    GraphQLSchema
} = graphql;

const users = [
    {id:'23', firstName:'Bill', age:20},
    {id:'47', firstName:'Samantha', age:21}
];

const UserType = new GraphQLObjectType({
    name: 'User',
    fields:{
        id: {type: GraphQLString},
        firstName: {type: GraphQLString},
        age:{type: GraphQLInt}
    }
});

const RootQuery = new GraphQLObjectType({
    name: 'RootQueryType',
    fields:{
        user: {
            type: UserType,
            args:{
                id: {type: GraphQLString}
            },
            resolve(parentValue, args){ // move the resolve function to here
                return _.find(users, {id: args.id});
            }
        },

    }
});

module.exports = new GraphQLSchema({
    query: RootQuery
});

当我在 graphiql 上运行以下查询时:

query {
  user {
    id: "23"
  }
}

我收到“语法错误 GraphQL 请求 (3:9) 预期名称,找到字符串”,但我希望获得 ID 为“23”的用户。

我错过了什么?

共有1个答案

潘畅
2023-03-14

你把你的参数值放在你的选择上

query {
  user(id: “23”) {
    id
    firstName
    age
  }
}

请查看教程中的参数部分http://graphql.org/graphql-js/passing-arguments/

 类似资料:
  • 我在创建一个 schema.json 文件时遇到问题,该文件可以使用 babel-relay-plugin 解析而不会遇到错误。查看中继的示例文件夹中包含的 schema.json 文件,我试图在 GraphiQL 中复制查询,但我似乎无法正确处理。我使用Laravel作为后端。这是我可以通过 GraphiQL 完成的还是向 GraphQL endpoint发送请求并保存响应来完成的? 尝试解析s

  • 我认为我的问题是一个常见的问题,我正在权衡作为解决方案的GraphQL的成本和收益。 我在一个产品上工作,该产品的数据由基于CRUD的RESTAPI存储。我们的应用程序组件公开了一个数据搜索接口,当然需要某种服务器端支持来请求该数据。这可以包括排序、筛选、选择字段等。当然,在Hibernate上下文中提供这些功能的更传统方式,比如endpoint的查询参数附加项,但是在这一上下文中尝试CopyQL

  • Sangria.parser.SyntaxError:解析GraphQL查询时出现语法错误。输入结尾意外,应为union、Comments、INTERNECT、SPALEAR、enum、type、inputType或directive(第1行第79列):“Query FetchPokemons{\n pokemonsWithHeight(Height:100){\n NAME\n}\n}” 但是在

  • 我用的是spring-boot和graphql-spqr。GraphQL查询和变异是可行的。但是GraphiQL webfrontend并没有在最右边的一列中显示“documentatin explorer”中的模式。为什么? 我的图形ql控制器

  • 问题内容: 消息102,级别15,状态1,第5行’)’附近的语法不正确 这个查询有什么问题,请帮忙。 问题答案: 尝试添加一个表名(例如),如下所示: 如果您不需要嵌套查询,也可以使用以下查询:

  • 我正在使用GraphQL客户端americanExpress/节点。 这是我想要的查询: 服务器返回包含值和日期时间的对象列表。使用Postman,服务器成功返回一个列表。 我正在使用以下带注释的类: 并构建请求: 但是,结果是GetLatestDataAnNotationClass类型的单个对象,而不是所需的GetLatestDataAnNotationClass列表。我尝试使用嵌套类,但结果查