mirror of
https://github.com/revanced/revanced-api.git
synced 2025-04-29 14:14:29 +02:00
feat: Move spec url to versioned path
This commit is contained in:
parent
e22ec16e40
commit
e871b23210
@ -11,7 +11,7 @@ import org.koin.ktor.ext.get
|
||||
import kotlin.time.Duration.Companion.minutes
|
||||
|
||||
fun Application.configureHTTP() {
|
||||
val configurationRepository = get<ConfigurationRepository>()
|
||||
val configuration = get<ConfigurationRepository>()
|
||||
|
||||
install(CORS) {
|
||||
HttpMethod.DefaultMethods.minus(HttpMethod.Options).forEach(::allowMethod)
|
||||
@ -22,7 +22,7 @@ fun Application.configureHTTP() {
|
||||
|
||||
allowCredentials = true
|
||||
|
||||
configurationRepository.corsAllowedHosts.forEach { host ->
|
||||
configuration.corsAllowedHosts.forEach { host ->
|
||||
allowHost(host = host, schemes = listOf("https"))
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package app.revanced.api.configuration
|
||||
|
||||
import app.revanced.api.command.applicationVersion
|
||||
import app.revanced.api.configuration.repository.ConfigurationRepository
|
||||
import io.bkbn.kompendium.core.attribute.KompendiumAttributes
|
||||
import io.bkbn.kompendium.core.plugin.NotarizedApplication
|
||||
import io.bkbn.kompendium.json.schema.KotlinXSchemaConfigurator
|
||||
import io.bkbn.kompendium.oas.OpenApiSpec
|
||||
@ -12,13 +13,22 @@ import io.bkbn.kompendium.oas.info.License
|
||||
import io.bkbn.kompendium.oas.security.BearerAuth
|
||||
import io.bkbn.kompendium.oas.server.Server
|
||||
import io.ktor.server.application.*
|
||||
import org.koin.ktor.ext.get
|
||||
import io.ktor.server.response.*
|
||||
import io.ktor.server.routing.*
|
||||
import java.net.URI
|
||||
import org.koin.ktor.ext.get as koinGet
|
||||
|
||||
internal fun Application.configureOpenAPI() {
|
||||
val configurationRepository = get<ConfigurationRepository>()
|
||||
val configuration = koinGet<ConfigurationRepository>()
|
||||
|
||||
install(NotarizedApplication()) {
|
||||
openApiJson = {
|
||||
route("/${configuration.apiVersion}/openapi.json") {
|
||||
get {
|
||||
call.respond(application.attributes[KompendiumAttributes.openApiSpec])
|
||||
}
|
||||
}
|
||||
}
|
||||
spec = OpenApiSpec(
|
||||
info = Info(
|
||||
title = "ReVanced API",
|
||||
@ -41,7 +51,7 @@ internal fun Application.configureOpenAPI() {
|
||||
),
|
||||
).apply {
|
||||
servers += Server(
|
||||
url = URI(configurationRepository.endpoint),
|
||||
url = URI(configuration.endpoint),
|
||||
description = "ReVanced API server",
|
||||
)
|
||||
}
|
||||
|
@ -52,6 +52,7 @@ internal fun Application.configureRouting() = routing {
|
||||
extensions("json", "asc")
|
||||
}
|
||||
|
||||
swagger(pageTitle = "ReVanced API", path = "/")
|
||||
redoc(pageTitle = "ReVanced API", path = "/redoc")
|
||||
val specUrl = "/${configuration.apiVersion}/openapi.json"
|
||||
swagger(pageTitle = "ReVanced API", path = "/", specUrl = specUrl)
|
||||
redoc(pageTitle = "ReVanced API", path = "/redoc", specUrl = specUrl)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user