gpt4 book ai didi

具有嵌套突变的 Graphql?

转载 作者:行者123 更新时间:2023-12-03 17:43:45 24 4
gpt4 key购买 nike

如果可能的话,我试图弄清楚如何使用 graphql 突变来改变嵌套对象。例如,我有以下架构:

type Event {
id: String
name: String
description: String
place: Place
}

type Place {
id: String
name: String
location: Location
}

type Location {
city: String
country: String
zip: String
}

type Query {
events: [Event]
}

type Mutation {
updateEvent(id: String, name: String, description: String): Event
}

schema {
query: Query
mutation: Mutation
}

如何在我的 updateEvent 中添加地点信息突变?

最佳答案

一般来说,您应该避免将突变的参数视为到架构中对象类型的直接映射。虽然它们确实经常相似,但你最好在假设它们不会相似的情况下处理事情。

以您的基本类型为例。假设我想创建一个新事件,但我不知道位置,而只知道经度/纬度——实际上是后端根据这些数据计算出真实的位置对象,我当然不知道它的 ID(它还没有!)。我可能会像这样构建我的突变:

input Point {
longitude: Float!
latitude: Float!
}

input PlaceInput {
name
coordinates: Point!
}

type mutation {
createEvent(
name: String!
description: String
placeId: ID
newPlace: PlaceInput
): Event
updateEvent(
id: ID!
name: String!
description: String
placeId: ID
newPlace: PlaceInput
): Event
)

突 rebase 本上只是一个函数调用,最好从这些方面来考虑它。如果您编写了一个函数来创建一个事件,您可能不会为它提供一个事件并期望它返回一个事件,您将提供创建一个事件所需的信息。

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

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