Step 1. Add the JitPack repository to your build file
Add it in your root settings.gradle at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
Add it in your settings.gradle.kts at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url = uri("https://jitpack.io") }
}
}
Add to pom.xml
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
Add it in your build.sbt at the end of resolvers:
resolvers += "jitpack" at "https://jitpack.io"
Add it in your project.clj at the end of repositories:
:repositories [["jitpack" "https://jitpack.io"]]
Step 2. Add the dependency
dependencies {
implementation 'com.github.acterics:ktor-swagger:0.4'
}
dependencies {
implementation("com.github.acterics:ktor-swagger:0.4")
}
<dependency>
<groupId>com.github.acterics</groupId>
<artifactId>ktor-swagger</artifactId>
<version>0.4</version>
</dependency>
libraryDependencies += "com.github.acterics" % "ktor-swagger" % "0.4"
:dependencies [[com.github.acterics/ktor-swagger "0.4"]]
This project provides a library that allows you you to integrate the swaggerUi with ktor
An example efrom the ktor-sample-swagger
is deployed on heroku.
This library adds some extension function that build on the ktor routing feature to provide an API
that allows this feature to automatically generate a swagger.json
file for your webserver.
routing {
get<pets>("all".responds(ok<PetsModel>())) {
call.respond(data)
}
post<pets, PetModel>("create".responds(created<PetModel>())) { _, entity ->
call.respond(Created, entity.copy(id = newId()).apply {
data.pets.add(this)
})
}
get<pet>("find".responds(ok<PetModel>(), notFound())) { params ->
data.pets.find { it.id == params.id }
?.let {
call.respond(it)
}
}
}
This project is a proof of concept built on a library to support this functionality.
There is an open proposal to include this project as an official Ktor feature here.