@@ -2,6 +2,7 @@ package app.revanced.api.configuration
22
33import app.revanced.api.command.applicationVersion
44import app.revanced.api.configuration.repository.ConfigurationRepository
5+ import io.bkbn.kompendium.core.attribute.KompendiumAttributes
56import io.bkbn.kompendium.core.plugin.NotarizedApplication
67import io.bkbn.kompendium.json.schema.KotlinXSchemaConfigurator
78import io.bkbn.kompendium.oas.OpenApiSpec
@@ -12,13 +13,22 @@ import io.bkbn.kompendium.oas.info.License
1213import io.bkbn.kompendium.oas.security.BearerAuth
1314import io.bkbn.kompendium.oas.server.Server
1415import io.ktor.server.application.*
15- import org.koin.ktor.ext.get
16+ import io.ktor.server.response.*
17+ import io.ktor.server.routing.*
1618import java.net.URI
19+ import org.koin.ktor.ext.get as koinGet
1720
1821internal fun Application.configureOpenAPI () {
19- val configurationRepository = get <ConfigurationRepository >()
22+ val configuration = koinGet <ConfigurationRepository >()
2023
2124 install(NotarizedApplication ()) {
25+ openApiJson = {
26+ route(" /${configuration.apiVersion} /openapi.json" ) {
27+ get {
28+ call.respond(application.attributes[KompendiumAttributes .openApiSpec])
29+ }
30+ }
31+ }
2232 spec = OpenApiSpec (
2333 info = Info (
2434 title = " ReVanced API" ,
@@ -41,7 +51,7 @@ internal fun Application.configureOpenAPI() {
4151 ),
4252 ).apply {
4353 servers + = Server (
44- url = URI (configurationRepository .endpoint),
54+ url = URI (configuration .endpoint),
4555 description = " ReVanced API server" ,
4656 )
4757 }
0 commit comments