首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

graphql get查询显示此错误“标量中不允许变量”

问题分析

GraphQL中的get查询出现“标量中不允许变量”的错误,通常是因为在标量字段中使用了变量,而GraphQL不允许在标量字段中直接使用变量。

基础概念

  • GraphQL: 是一种用于API的查询语言,允许客户端请求所需的数据结构。
  • 标量: GraphQL中的基本数据类型,如String、Int、Float、Boolean和ID。
  • 变量: 在GraphQL查询中使用变量可以提高查询的灵活性和可重用性。

错误原因

GraphQL不允许在标量字段中直接使用变量。例如,以下查询会引发该错误:

代码语言:txt
复制
query GetUser($id: ID!) {
  user(id: $id) {
    name
    age
    isActive # 这里使用了变量,但isActive是标量字段
  }
}

解决方法

  1. 检查查询语法: 确保在标量字段中没有使用变量。
  2. 使用输入类型: 如果需要在标量字段中使用变量,可以考虑使用输入类型。

示例代码

假设我们有一个用户查询,其中包含一个布尔类型的字段isActive,我们可以使用输入类型来解决这个问题。

代码语言:txt
复制
# 定义输入类型
input UserInput {
  id: ID!
  isActive: Boolean
}

# 查询
query GetUser($input: UserInput!) {
  user(input: $input) {
    name
    age
    isActive
  }
}

然后在客户端传递变量时:

代码语言:txt
复制
{
  "input": {
    "id": "123",
    "isActive": true
  }
}

应用场景

这种错误常见于需要动态设置标量字段值的场景,例如根据用户输入来过滤数据。

参考链接

通过以上方法,可以有效解决“标量中不允许变量”的错误。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

GraphQL 基础实践

变量定义:在 GraphQL 中,声明一个变量使用符号开头,冒号后面紧跟着变量的传入类型。如果要使用变量,直接引用即可,例如上面的 movie 就可以改写成 movie(name: name)。...在 GraphQL 中,只有一个 API 端点,同样也接受 GET 和 POST 动词,如要操作 mutation 则使用 POST 请求。...如果感叹号跟在 field 的后面,则表示返回该 type 的数据时,此字段一定不为空。 通过上面的类型定义,可以看到 GraphQL 中的类型系统起到了很重要的角色。...在本例中,Schema 定义了 name 为 String类型,那么你就不能传 Int类型进去,此时会抛出类型不符的错误。...字段得到的是一组 id,不符合 Schema 的定义,此时 GraphQL 会抛出错误。

12.8K20

C# 一分钟浅谈:GraphQL 数据类型与查询

引言 随着Web开发技术的不断进步,GraphQL作为一种数据查询和操作语言,逐渐成为现代Web应用中的重要组成部分。相比传统的REST API,GraphQL提供了更加灵活和高效的数据获取方式。...GraphQL 数据类型 标量类型 GraphQL定义了一些基本的标量类型,包括: String:字符串类型 Int:整数类型 Float:浮点数类型 Boolean:布尔类型 ID:唯一标识符类型,通常用于表示数据库中的主键...} } 变量 变量用于在查询中传递动态参数。...例如,使用变量查询用户: query GetUser($userId: ID!)...可以使用数据加载器(DataLoader)来批量加载数据,减少数据库查询次数。 错误处理:GraphQL提供了丰富的错误信息,但在实际开发中,需要合理处理错误,避免暴露过多的内部信息。

8500
  • C# 一分钟浅谈:GraphQL 数据类型与查询

    引言随着Web开发技术的不断进步,GraphQL作为一种数据查询和操作语言,逐渐成为现代Web应用中的重要组成部分。相比传统的REST API,GraphQL提供了更加灵活和高效的数据获取方式。...GraphQL 数据类型标量类型GraphQL定义了一些基本的标量类型,包括:String:字符串类型Int:整数类型Float:浮点数类型Boolean:布尔类型ID:唯一标识符类型,通常用于表示数据库中的主键枚举类型枚举类型用于定义一组固定的值...例如,查询用户及其文章:query { user(id: "123") { id name articles { id title } }}变量变量用于在查询中传递动态参数...例如,使用变量查询用户:query GetUser($userId: ID!)...可以使用数据加载器(DataLoader)来批量加载数据,减少数据库查询次数。错误处理:GraphQL提供了丰富的错误信息,但在实际开发中,需要合理处理错误,避免暴露过多的内部信息。

    11510

    GraphQL 从入门到实践

    对象类型:用户在 schema 中定义的 type 标量类型:GraphQL 中内置有一些标量类型 String、Int、Float、Boolean、ID,用户也可以定义自己的标量类型 比如在 Schema...它定义了字段的类型、数据的结构,描述了接口数据请求的规则,当我们进行一些错误的查询的时候 GraphQL 引擎会负责告诉我们哪里有问题,和详细的错误信息,对开发调试十分友好。...2.5 请求格式 GraphQL 最常见的是通过 HTTP 来发送请求,那么如何通过 HTTP 来进行 GraphQL 通信呢 举个栗子,如何通过 Get/Post 方式来执行下面的 GraphQL 查询呢...# Get 方式 http://myapi/graphql?...---- 网上的帖子大多深浅不一,甚至有些前后矛盾,在下的文章都是学习过程中的总结,如果发现错误,欢迎留言指出~ 参考: GraphQL | 一种为你的 API 而生的查询语言 JSON-RPC

    2.5K31

    以C#一分钟浅谈:GraphQL 数据类型与查询

    C#中的GraphQL实现 在C#中,最常用的GraphQL库是GraphQL.NET。这个库提供了丰富的功能,可以帮助开发者快速构建GraphQL API。...数据类型 GraphQL支持多种数据类型,包括标量类型、枚举类型、对象类型、接口类型和联合类型。...查询深度限制 在GraphQL中,客户端可以自由地嵌套查询,这可能导致查询深度过深,影响性能。为了避免这种情况,可以在Schema中设置查询深度限制。...字段解析错误 在定义对象类型时,如果字段解析方法返回的类型与Schema中定义的类型不匹配,会导致解析错误。确保字段解析方法返回正确的类型。...Age { get; set; } public Role Role { get; set; } // 错误示例:返回类型不匹配 // public string Role(

    11710

    GraphQL详解

    「做减法:」 产品需求减少,页面需要减少功能,或者减少某些信息显示,那么数据就要做减法。 一种通常懒惰的做法是,前端不与后端沟通,仅在前端对数据选择性显示。...GraphQL本质上是一种基于api的查询语言,现在大多数应用程序都需要从服务器中获取数据,这些数据存储可能存储在数据库中,API的职责是提供与应用程序需求相匹配的存储数据的接口。...这很像Java、C#中的类(Class)。 GraphQL的Type简单可以分为两种,一种叫做Scalar Type(标量类型),另一种叫做Object Type(对象类型)。...标量类型(Scalar Type) 标量是GraphQL类型系统中最小的颗粒。类似于Java、C#中的基本类型。...例如定义了一个名为User的对象类型,并对其字段进行定义和施加限制条件: User字段控制 那么,返回数据时,像下面这种情况就是不允许的: 错误的表示 Graphql会根据Schema Type来自动返回正确的数据

    2.6K00

    30分钟理解GraphQL核心概念

    值得注意的是,GraphQL中可以通过Scalar声明一个新的标量,比如: prisma(一个使用GraphQL来抽象数据库操作的库)中,还有DateTime和ID这两个标量分别代表日期格式和主键 在使用...GraphQL实现文件上传接口时,需要声明一个Upload标量来代表要上传的文件 总之,我们只需要记住,标量是GraphQL类型系统中最小的颗粒,关于它在GraphQL解析查询结果时,我们还会再提及它。...Note: 为了方便区分,Query特指GraphQL中的查询(包含三种类型),query指GraphQL中的查询类型(仅指查询类型) Query 上面所提及的3中基本查询类型是作为Root Query...(比如上面例子中article(id: Int)中的id) ctx: 在Resolver解析链中不断传递的中间变量(类似中间件架构中的context) info: 当前Query的AST对象 值得注意的是...同时,还需要了解一些额外的查询概念,比如分页查询中涉及的Connection、Edge等。 大概就这么多,如有错误,还望指正。

    2K40

    30分钟理解GraphQL核心概念

    值得注意的是,GraphQL中可以通过Scalar声明一个新的标量,比如: prisma(一个使用GraphQL来抽象数据库操作的库)中,还有DateTime和ID这两个标量分别代表日期格式和主键 在使用...GraphQL实现文件上传接口时,需要声明一个Upload标量来代表要上传的文件 总之,我们只需要记住,标量是GraphQL类型系统中最小的颗粒,关于它在GraphQL解析查询结果时,我们还会再提及它。...Note: 为了方便区分,Query特指GraphQL中的查询(包含三种类型),query指GraphQL中的查询类型(仅指查询类型) Query 上面所提及的3中基本查询类型是作为Root Query...(比如上面例子中article(id: Int)中的id) ctx: 在Resolver解析链中不断传递的中间变量(类似中间件架构中的context) info: 当前Query的AST对象 值得注意的是...同时,还需要了解一些额外的查询概念,比如分页查询中涉及的Connection、Edge等。 大概就这么多,如有错误,还望指正。

    98620

    我为什么要放弃RESTful,选择拥抱GraphQL

    「做减法:」 产品需求减少,页面需要减少功能,或者减少某些信息显示,那么数据就要做减法。 一种通常懒惰的做法是,前端不与后端沟通,仅在前端对数据选择性显示。...GraphQL本质上是一种基于api的查询语言,现在大多数应用程序都需要从服务器中获取数据,这些数据存储可能存储在数据库中,API的职责是提供与应用程序需求相匹配的存储数据的接口。...这很像Java、C#中的类(Class)。 GraphQL的Type简单可以分为两种,一种叫做Scalar Type(标量类型),另一种叫做Object Type(对象类型)。...标量类型(Scalar Type) 标量是GraphQL类型系统中最小的颗粒。类似于Java、C#中的基本类型。...例如定义了一个名为User的对象类型,并对其字段进行定义和施加限制条件: User字段控制 那么,返回数据时,像下面这种情况就是不允许的: 错误的表示 Graphql会根据Schema Type来自动返回正确的数据

    2.4K40

    GraphQL

    GraphQL本质上是一种基于api的查询语言,现在大多数应用程序都需要从服务器中获取数据,这些数据存储可能存储在数据库中,API的职责是提供与应用程序需求相匹配的存储数据的接口。...这很像Java、C#中的类(Class)。 GraphQL的Type简单可以分为两种,一种叫做Scalar Type(标量类型),另一种叫做Object Type(对象类型)。...标量类型(Scalar Type) 标量是GraphQL类型系统中最小的颗粒。类似于Java、C#中的基本类型。...其中内建标量主要有: String Int Float Boolean Enum ID Scalar Type 上面的类型仅仅是GraphQL默认内置的类型,当然,为了保证最大的灵活性,GraphQL还可以很灵活的自行创建标量类型...例如定义了一个名为User的对象类型,并对其字段进行定义和施加限制条件: User字段控制 那么,返回数据时,像下面这种情况就是不允许的: 错误的表示 Graphql会根据Schema Type来自动返回正确的数据

    2.6K65

    新一代数据查询语言GraphQL来啦!

    所以最终GraphQL给了产品设计人员和开发人员重新思考移动应用数据获取的机会,它将开发的重点转移到了客户端应用中,这里是设计师和开发人员最关注的地方。 3. 什么是GraphQL?...GraphQL服务通过定义类型和属性来创建,然后为在这些类型上的每个属性创建函数。跟SQL类似,这使得GraphQL在执行查询之前可以提供描述性的错误信息。...的类型系统分为标量类型(Scalar Types,标量类型)和其他高级数据类型,标量类型即可以表示最细粒度数据结构的数据类型,可以和 JavaScript的原始类型对应。...例如客户端要显示文章的内容,可能要调用文章接口、评论接口、用户信息接口。为构成对一个资源的完整视图,需要做多次单独调用,这样的数据获取方式非常不灵活。 而GraphQL给客户端带来了自主选择的权利。...RESTful: // 两趟查询,难以拓展 GET /user/111 GET /article/1001?

    3K70

    新一代数据查询语言GraphQL来啦!

    所以最终GraphQL给了产品设计人员和开发人员重新思考移动应用数据获取的机会,它将开发的重点转移到了客户端应用中,这里是设计师和开发人员最关注的地方。 3. 什么是GraphQL?...GraphQL服务通过定义类型和属性来创建,然后为在这些类型上的每个属性创建函数。跟SQL类似,这使得GraphQL在执行查询之前可以提供描述性的错误信息。...的类型系统分为标量类型(Scalar Types,标量类型)和其他高级数据类型,标量类型即可以表示最细粒度数据结构的数据类型,可以和 JavaScript的原始类型对应。...例如客户端要显示文章的内容,可能要调用文章接口、评论接口、用户信息接口。为构成对一个资源的完整视图,需要做多次单独调用,这样的数据获取方式非常不灵活。 而GraphQL给客户端带来了自主选择的权利。...RESTful: // 两趟查询,难以拓展 GET /user/111 GET /article/1001?

    91430

    为什么我劝你放弃了Restful API?

    GraphQL本质上是一种基于api的查询语言,现在大多数应用程序都需要从服务器中获取数据,这些数据存储可能存储在数据库中,API的职责是提供与应用程序需求相匹配的存储数据的接口。...这很像Java、C#中的类(Class)。 GraphQL的Type简单可以分为两种,一种叫做Scalar Type(标量类型),另一种叫做Object Type(对象类型)。...标量类型(Scalar Type) 标量是GraphQL类型系统中最小的颗粒。类似于Java、C#中的基本类型。...其中内建标量主要有: String Int Float Boolean Enum ID 上面的类型仅仅是GraphQL默认内置的类型,当然,为了保证最大的灵活性,GraphQL还可以很灵活的自行创建标量类型...例如定义了一个名为User的对象类型,并对其字段进行定义和施加限制条件: 那么,返回数据时,像下面这种情况就是不允许的: Graphql会根据Schema Type来自动返回正确的数据: 其他类型 除了上面的

    3.1K20

    GraphQL入门之自定义标量类型

    GraphQL 默认支持五种标量类型:Int,Float,String,Boolean 和 ID,可以满足大部分的使用场景,但有时候需要一些特殊的属性类型,此时我们就可以使用自定义标量类型来实现。...} schema { query: Query mutation: Mutation } schema 文件主要包括: 定义了一个标量类型 DateTime 在用户对象中添加了一个标量类型的属性...registerDateTime 查询操作的时候按用户 registerDateTime 来查找 变更操作的时候添加了一个 registerDateTime 的标量类型 实现处理器 创建 resolvers.js...此方法将值的AST表示转换为标量的后端表示。...执行对象查询操作的时候会调用 GraphQLScalarType 类 parseLiteral 方法,主要用了处理查询请求中 hard code 的 registerDateTime 参数。

    13910

    GraphQL 初体验,Node.js 构建 GraphQL API 指南

    你想要呈现用户的个人资料页面,你可能需要进行一次 API GET 调用,以获取有关用户的信息,例如用户名或电子邮件。然后你可能需要进行另一个 API 调用以获取有关地址的信息,该信息存储在另一张表中。...使用 GraphQL,你无需进行多个 API 调用(例如 GET /user/:id 和 GET /user/:id/addresses ),而是进行一次 API 调用并将查询提交到单个端点: ` query...(顺便说一下,GraphQL 模式不仅有对象,字段和标量类型,还有更多,你也可以合并接口,联合和参数以构建更复杂的模型,但本文中不会介绍)。...在左侧窗格中,你可以输入所需要的任何有效 GraphQL 查询,而在右侧获得结果。...例如,无论成功与否,GraphQL 仅制定一个状态码 200.在这个响应中会返回一个特殊的错误键,供客户端解析和识别出错,因此,错误处理可能会有些棘手。

    8.3K40

    GraphQL与OpenAPI:数据治理的优缺点

    关系使用 Schema Definition Language (SDL) 指定,其中包括其类型系统中的标量、枚举、接口和联合。...虽然开发人员使用 REST 动词(GET、POST、PATCH 等)来定义操作的类别,但 OpenAPI 工具不会强制执行它们的用法。...这些数据产品可以在不同的操作中重复使用。 重用:通过定义概念(如数据产品、查询片段或关系)来强调可重用的构建块,为灵活的组合奠定基础。...GraphQL GraphQL设计为可扩展的,并具有自定义指令、自定义标量和可扩展类型之类的功能。指令会修改操作的行为。...由于其专业化重点,GraphQL 可以提供以多种语言实现的参考库。这些库解析 GraphQL 模式和查询并将它们连接到代码,从而促进数据库和业务逻辑集成到响应中。

    13010

    《GraphQL 名词 101:解析 GraphQL 的查询语法》【译】

    如上面的示例,参数可以是字面量,接下来还有参数作为变量形式的栗子。请注意,参数可以显示在任何字段中,即使是嵌套层次很深的字段。...如果你不仅仅是用GraphQL执行查询操作,或是希望传递动态变量到GraphQL查询中,你就需要利用到这些新的GraphQL特性。...这样,无论你是在网络日志中或者GraphQL服务器上发现错误,你都可以通过名字很轻松的在代码库中定位问题,而不是靠猜测(类似的工具有 Apollo Optics)。...变量定义(Variable definitions):当客户端向GraphQL服务器发送查询时,会存在查询文档不变,当某些字段会动态变化的情况。这些就是查询中的变量。...变量使用特定的序列化协议(在目前的 GraphQL 服务实现中,通常是使用JSON )通过查询文档独立传输。

    3K20

    GraphQL到底怎么使?看看智联前端团队技术沉淀

    操作模型:GraphQL 规范中对数据的操作做了定义,有三种,query(查询)、mutation(变更)、subscription(订阅)。...所以为了避免误解,后文将把 Query Document(查询文档)称为 Document 或文档。一个 Document 中可包含单个或多个操作,每个操作都可以查询补丁数量的跟字段。...}, updateTime: '2020-04-11' } } 预期数据会返回在 data 中,当有错误时,会出现 errors 字段并按照规范规定的格式展示错误。...其他定义 当然,在使用 GraphQL 的过程中,还可以: 使用 Variables(变量)复用同一段 Document 来动态传参。...schema 中,field 和 resolver 和他们一一对应的关系,同时此 schema 就是可执行 Schema。

    2.3K20
    领券