io.javalin.openapi.plugin.OpenApiPlugin.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of javalin-openapi-plugin Show documentation
Show all versions of javalin-openapi-plugin Show documentation
Serve raw OpenApi documentation under dedicated endpoint
The newest version!
package io.javalin.openapi.plugin
import com.fasterxml.jackson.annotation.JsonInclude.Include
import com.fasterxml.jackson.databind.JsonNode
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.databind.node.ObjectNode
import io.javalin.config.JavalinConfig
import io.javalin.openapi.OpenApiLoader
import io.javalin.plugin.Plugin
import java.util.function.Consumer
open class OpenApiPlugin(userConfig: Consumer) : Plugin(userConfig, OpenApiPluginConfiguration()) {
override fun onStart(config: JavalinConfig) {
config.router.mount {
it.get(
pluginConfig.documentationPath,
OpenApiHandler(createDocumentation()),
*pluginConfig.roles?.toTypedArray() ?: emptyArray()
)
}
}
private fun createDocumentation(): Lazy