加入我们,于10月8日至10日在纽约市学习关于GraphQL联盟和API平台工程的最新技巧、趋势和新闻。加入2024年GraphQL summit纽约市会议
文档
免费开始

在Apollo Kotlin中使用GraphQL变量


支持将参数值传递给您的变量. 这使得您可以编写单个 ,您可以使用多个 值进行重用(这是 推荐的最佳实践)。

GraphQL 中,非空 是必须的,而空变量始终是可选的。使用它自己的 Optional 类型来区分存在(但可能为空)和不存在类型。

考虑以下具有两个空变量 GraphQL 查询:

query GetTodos($first: Int, $offset: Int) {
todos(first: $first, offset: $offset) {
id
text
}
}

Apollo Kotlin 为此 查询 生成以下 Kotlin 代码:

class GetTodosQuery(
val first: Optional<Int?> = Optional.Absent,
val offset: Optional<Int?> = Optional.Absent
)

您可以有选择地提供或省略如下所示的变量值:

// Omit values for both variables
val query = GetTodosQuery(Optional.Absent, Optional.Absent)
// Provide null for both variables
val query = GetTodosQuery(Optional.Present(null), Optional.Present(null))
// Send explicit values for both variables
val query = GetTodosQuery(Optional.Present(100), Optional.Present(0))

使用输入构建器

对于操作和输入对象,需要将值包裹在Optional包装器可能会很麻烦。

在这种情况下,请使用generateInputBuilders:

apollo {
service("service") {
// ...
generateInputBuilders.set(true)
}
}

如果你这样做,在上面的GetTodos 查询的情况下,Apollo Kotlin现在为每个生成一个Builder:

// Omit values for both variables
val query = GetTodosQuery.Builder()
.build()
// Provide null for both variables
val query = GetTodosQuery.Builder()
.first(null)
.offset(null)
.build()
// Send explicit values for both variables
val query = GetTodosQuery.Builder()
.first(100)
.offset(0)
.build()
上一页
订阅
下一页
错误处理
评价文章评价在GitHub上编辑Edit论坛Discord

©2024Apollo Graph Inc.,通用名为 Apollo GraphQL。

隐私策略

公司