All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.javalin.plugin.openapi.ui.ReDocRenderer.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

class ReDocOptions @JvmOverloads constructor(
    path: String,
    internal val optionsObject: RedocOptionsObject = RedocOptionsObject()
) : OpenApiUiOptions(path) {
    
    override val defaultTitle = "ReDoc"
}


internal class ReDocRenderer(private val openApiOptions: OpenApiOptions) : Handler {
    @OpenApi(ignore = true)
    override fun handle(ctx: Context) {
        val reDocOptions = openApiOptions.reDoc!!
        val docsPath = openApiOptions.getFullDocumentationUrl(ctx)
        ctx.html(createReDocHtml(ctx, docsPath, reDocOptions))
    }
}

private fun createReDocHtml(ctx: Context, docsPath: String, redocOptions: ReDocOptions): String {
    val publicBasePath = Util.getWebjarPublicPath(ctx, OptionalDependency.REDOC)
    val options = redocOptions.optionsObject

    return """
    |
    |
    |  
    |    ${redocOptions.createTitle()}
    |    
    |    
    |    
    |    
    |    
    |    
    |  
    |  
    |  
    |  
    |  
    |  
    |
    |""".trimMargin()
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy