
io.javalin.plugin.openapi.ui.SwaggerRenderer.kt Maven / Gradle / Ivy
The newest version!
package io.javalin.plugin.openapi.ui
import io.javalin.core.util.OptionalDependency
import io.javalin.core.util.Util
import io.javalin.http.Context
import io.javalin.http.Handler
import io.javalin.plugin.openapi.OpenApiOptions
import io.javalin.plugin.openapi.annotations.OpenApi
import org.intellij.lang.annotations.Language
class SwaggerOptions(path: String) : OpenApiUiOptions(path) {
override val defaultTitle = "Swagger UI"
}
internal class SwaggerRenderer(private val openApiOptions: OpenApiOptions) : Handler {
@OpenApi(ignore = true)
override fun handle(ctx: Context) {
val swaggerUiOptions = openApiOptions.swagger!!
val docsPath = openApiOptions.getFullDocumentationUrl(ctx)
ctx.html(createSwaggerUiHtml(ctx, docsPath, swaggerUiOptions))
}
}
private fun createSwaggerUiHtml(ctx: Context, docsPath: String, options: SwaggerOptions): String {
val publicBasePath = Util.getWebjarPublicPath(ctx, OptionalDependency.SWAGGERUI)
@Language("html")
val html = """
${options.createTitle()}
""".trimIndent()
return html
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy