知海

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 服务器。

帮助我们改进文档

发现翻译问题或内容错误?请告诉我们。