stuebingerb / KGraphQL

Pure Kotlin GraphQL implementation
MIT License
3 stars 1 forks source link

KGraphQL

Maven Central CodeQL

KGraphQL is a Kotlin implementation of GraphQL based on aPureBase/KGraphQL. It provides a rich DSL to set up the GraphQL schema.

data class Article(val id: Int, val text: String)

suspend 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
            }
        }
    """.trimIndent()).let(::println)
}

Documentation

See the documentation for a more detailed explanation of the library.

Contributing

See Contributing.

Examples

Working examples are located in the examples folder. Every example is its own project, separated from the library build. To build and/or run it, move into the folder of the example (e.g. ktor) and execute Gradle tasks from there.

Versioning

The versioning from 1.0.0 on follows Semantic Versioning.

Links

GraphQL specification: https://spec.graphql.org/

License

KGraphQL is Open Source software released under the MIT license.