Ktor OpenAPI Generator
Ktor OpenAPI/Swagger 3 Generator
The Ktor OpenAPI Generator is a library to automatically generate the descriptor as you route your ktor application. The project is written primarily in Kotlin, distributed under the Apache License 2.0 license, first published in 2019. Key topics include: kotlin, ktor, ktor-framework, ktor-openapi-generator, openapi.
Ktor OpenAPI Generator
The Ktor OpenAPI Generator is a library to automatically generate the descriptor as you route your ktor application.
Ktor OpenAPI Generator is:
- Modular
- Strongly typed
- Explicit
Currently Supported:
- Authentication interoperability with strongly typed Principal (OAuth only, see TestServer in tests)
- Content Negotiation interoperability (see TestServer in tests)
- Custom response codes (as parameter in
@Response) - Automatic and custom content Type routing and parsing (see
com.papsign.ktor.openapigen.content.type, Binary Parser and default JSON parser (that uses the ktor implicit parsing/serializing)) - Exception handling (use
.throws(ex) {}in the routes with an APIException object) with Status pages interop (with .withAPI in the StatusPages configuration) - tags (
.tag(tag) {}in route with a tag object, currently must be an enum, but may be subject to change) - Spec compliant Parameter Parsing (see basic example)
- Legacy Polymorphism with use of
@DiscriminatorAnnotation()attribute and sealed classes
Extra Features:
- Includes Swagger-UI (enabled by default, can be managed in the
install(OpenAPIGen) { ... }section)
Examples
Take a look at a few examples
Who is using it?
And others... (add your name above)
Installation
Gradle
Step 1. Add the JitPack repository to your build file:
groovyallprojects { repositories { ... maven { url 'https://jitpack.io' } } }
Step 2. Add the dependency:
groovydependencies { implementation 'com.github.papsign:Ktor-OpenAPI-Generator:-SNAPSHOT' }
Git Submodule
Install the submodule:
shellgit submodule add https://github.com/papsign/Ktor-OpenAPI-Generator.git openapigen
Declare the folder in settings.gradle:
groovy... include 'openapigen'
Declare the dependency in the main build.gradle
groovyapply plugin: 'kotlin' ... dependencies { compile project(":openapigen") ... }
Contributors
Showing top 12 contributors by commit count.
