Documenting Schema
Since Javadocs are not available at runtime for introspection, graphql-kotlin-schema-generator
includes an annotation
class @GraphQLDescription
that can be used to add schema descriptions to any GraphQL schema element. The string value can be in the Markdown format.
@GraphQLDescription("A useful widget")
data class Widget(
@GraphQLDescription("The widget's value that can be `null`")
val value: Int?
)
class WidgetQuery {
@GraphQLDescription("Creates new widget for given ID")
fun widgetById(@GraphQLDescription("The special ingredient") id: Int): Widget? = Widget(id)
}
The above query would produce the following GraphQL schema:
schema {
query: Query
}
type Query {
"""Creates new widget for given ID"""
widgetById(
"""The special ingredient"""
id: Int!
): Widget
}
"""A useful widget"""
type Widget {
"""The widget's value that can be `null`"""
value: Int
}