gpt4 book ai didi

javascript - Graphql 嵌套突变

转载 作者:行者123 更新时间:2023-12-02 23:53:59 24 4
gpt4 key购买 nike

我正在构建一个 Graphql 模式来改变/查询餐馆,并尝试将营业时间存储在嵌套对象中。

结构应如下所示:

        [
{
monday: { open: restaurant.Open_Monday, close: restaurant.Close_Monday }

},
{
tuesday: { open: restaurant.Open_Tuesday, close: restaurant.Close_Tuesday }

},
{
wednesday: { open: restaurant.Open_Wednesday, close: restaurant.Close_Wednesday }

},
{
thursday: { open: restaurant.Open_Thursday, close: restaurant.Close_Thursday }

},
{
friday: { open: restaurant.Open_Friday, close: restaurant.Close_Friday }

},
{
saturday: { open: restaurant.Open_Saturday, close: restaurant.Close_Saturday }

},
{
sunday: { open: restaurant.Open_Sunday, close: restaurant.Close_Sunday }

},
]

餐厅变量包含我在将其发送到 API 并存储之前进行格式化的营业时间值。

我的 Graphql 架构如下所示:

input RestaurantInput {
key: Int!
name: String!
image: String!
telNumber: String!
bookingNumber: String
address1: String!
address2: String
suburb: String!
province: String!
postalCode: String
days: [DayInput]
cuisine: String
exclusions: String
restrictions: String
breakfast: String
lunch: String
supper: String
longitude: String
latitude: String
}

input DayInput {
monday: [TimeInput]
tuesday: [TimeInput]
wednesday: [TimeInput]
tursday: [TimeInput]
friday: [TimeInput]
saturday: [TimeInput]
sunday: [TimeInput]
}

input TimeInput {
open: String
close: String
}

当我点击该 API 端点时,我收到以下错误消息:

Expected type [DayInput], found "[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]".

我不确定我的调用是否格式不正确,或者我是否在架构本身中犯了错误。我对 Graphql 还很陌生,并且坚持这一点。

最佳答案

您看到该错误是因为您的输入结构与您的架构不匹配。架构中的方括号 ([]) 表示一个列表 - 如果您将输入类型括在方括号中,则相应的输入应该是一个数组。要获得与您显示的数组匹配的架构,您应该删除 TimeInput 周围的括号:

input RestaurantInput {
days: [DayInput]
# other fields
}

input DayInput {
monday: TimeInput
tuesday: TimeInput
wednesday: TimeInput
thursday: TimeInput
friday: TimeInput
saturday: TimeInput
sunday: TimeInput
}

input TimeInput {
open: String
close: String
}

但是,您也可以考虑完全简化此结构:

input RestaurantInput {
days: DayInput # <---- remove the List here
# other fields
}

input DayInput {
monday: TimeInput
tuesday: TimeInput
wednesday: TimeInput
thursday: TimeInput
friday: TimeInput
saturday: TimeInput
sunday: TimeInput
}

input TimeInput {
open: String
close: String
}

然后您可以只发送一个普通对象,而不使用数组:

{ 
monday: { open: restaurant.Open_Monday, close: restaurant.Close_Monday },
tuesday: { open: restaurant.Open_Tuesday, close: restaurant.Close_Tuesday },
wednesday: { open: restaurant.Open_Wednesday, close: restaurant.Close_Wednesday },
thursday: { open: restaurant.Open_Thursday, close: restaurant.Close_Thursday },
friday: { open: restaurant.Open_Friday, close: restaurant.Close_Friday },
saturday: { open: restaurant.Open_Saturday, close: restaurant.Close_Saturday },
sunday: { open: restaurant.Open_Sunday, close: restaurant.Close_Sunday },
},

关于javascript - Graphql 嵌套突变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55492198/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com