Kotlin:KGraphQL(服务端)
graphql-github-io-zh-Hans生态项目与库
Kotlin:KGraphQL(服务端)
KGraphQL 是 GraphQL 的 Kotlin 实现。它提供了丰富的 DSL 来构建 GraphQL schema。
基本用法
以下示例展示了如何基于一个 Kotlin 数据类以及应用于该类的属性解析器(property resolver)来创建一个简单的 schema:
kotlin
data class Article(val id: Int, val text: String)
fun main() {
val schema = KGraphQL.schema {
query("article") {
resolver { id: Int?, text: String ->
Article(id ?: -1, text)
}
}
type<Article> {
property<String>("fullText") {
resolver { article: Article ->
"${article.id}: ${article.text}"
}
}
}
}
schema.execute("""
{
article(id: 5, text: "Hello World") {
id
fullText
}
}
""").let(::println)
}
KGraphQL 在底层使用协程,以提供出色的异步性能。
更多深度用法请参阅 KGraphQL 文档。
Ktor 插件
KGraphQL 提供了一个 Ktor 插件,通过一次 install 函数调用即可获得一个功能完整的 GraphQL 服务器。下面的示例展示了如何在 Ktor 中设置一个 GraphQL 服务器,并默认提供 GraphQL Playground,只需访问 localhost:8080/graphql 即可。
kotlin
fun Application.module() {
install(GraphQL) {
playground = true
schema {
query("hello") {
resolver { -> "World!" }
}
}
}
}
您可以参考 Ktor 教程 从零开始使用 Ktor 搭建 KGraphQL 服务器。
帮助我们改进文档
发现翻译问题或内容错误?请告诉我们。
