graphQL查询:收到错误“类型的预期值......,找到......”
Posted
技术标签:
【中文标题】graphQL查询:收到错误“类型的预期值......,找到......”【英文标题】:graphQL Query: getting error "Expected value of type ..., found ..." 【发布时间】:2022-01-22 17:09:11 【问题描述】:假设我有以下对象类型:
type Price
currency: Currency!,
amount: Float!
type Attribute
displayValue: String,
value: String,
id: String!
type AttributeSet
id: String!,
name: String,
type: String,
items: [Attribute]
type Product
id: String!,
name: String!,
inStock: Boolean,
gallery: [String],
description: String!,
category: String!,
attributes: [AttributeSet]
prices: [Price!]!,
brand: String!
type Category
name: String,
products: [Product]!
type Currency
label: String!,
symbol: String!
input CategoryInput
title: String!
type Query
categories: [Category],
category(input: CategoryInput): Category,
product(id: String!): Product,
currencies: [Currency]
这些是Category
的类型:
export enum Category
all = 'all',
clothes = 'clothes',
tech = 'tech'
;
在 graphQL Playground 中,我正在尝试进行查询以显示类别为 all
的元素的所有名称和产品/ID。这是我的尝试:
category(input: "all")
name
products
id
但我收到以下错误消息:
"message": "Expected value of type \"CategoryInput\", found \"all\".",
由于all
是有效类型,因此我需要帮助来了解问题所在。提前谢谢你。
【问题讨论】:
你的架构是category(input: CategoryInput): Category
,其中CategoryInput
是一个具有title
属性的对象。这不是你想要的吗?您的架构中的哪个位置声明了枚举?
是的,现在我发现它令人困惑。那么我应该在“输入”字段中输入什么?
一个GraphQL enum type
只需要一个有效查询的示例,以便我可以将其可视化
问题不在于(仅)与查询有关。您需要先修复 schema
【参考方案1】:
刚刚发现我的错误
CategoryInput
属于类型
input CategoryInput
title: String!
所以正确的查询应该是:
category(input: title: "all" )
name
products
id
【讨论】:
但这不是枚举?您可以传递 any 字符串作为标题吗?以上是关于graphQL查询:收到错误“类型的预期值......,找到......”的主要内容,如果未能解决你的问题,请参考以下文章
为啥我收到错误“必须提供查询字符串”。快递-graphql?
为啥我在尝试从 C# 处理程序发布 GraphQL 查询时收到错误请求?
将 Graphql 查询作为 JSON 字符串传递时收到意外的令牌错误