54 lines
2.4 KiB
Plaintext
54 lines
2.4 KiB
Plaintext
|
package {{basePackage}}
|
||
|
|
||
|
import org.springframework.context.annotation.Bean
|
||
|
import org.springframework.context.annotation.Configuration
|
||
|
|
||
|
import io.swagger.v3.oas.models.OpenAPI
|
||
|
import io.swagger.v3.oas.models.info.Info
|
||
|
import io.swagger.v3.oas.models.info.Contact
|
||
|
import io.swagger.v3.oas.models.info.License
|
||
|
import io.swagger.v3.oas.models.Components
|
||
|
import io.swagger.v3.oas.models.security.SecurityScheme
|
||
|
|
||
|
@Configuration
|
||
|
class SpringDocConfiguration {
|
||
|
|
||
|
@Bean
|
||
|
fun apiInfo(): OpenAPI {
|
||
|
return OpenAPI()
|
||
|
.info(
|
||
|
Info(){{#appName}}
|
||
|
.title("{{appName}}"){{/appName}}
|
||
|
.description("{{{appDescription}}}"){{#termsOfService}}
|
||
|
.termsOfService("{{termsOfService}}"){{/termsOfService}}{{#openAPI}}{{#info}}{{#contact}}
|
||
|
.contact(
|
||
|
Contact(){{#infoName}}
|
||
|
.name("{{infoName}}"){{/infoName}}{{#infoUrl}}
|
||
|
.url("{{infoUrl}}"){{/infoUrl}}{{#infoEmail}}
|
||
|
.email("{{infoEmail}}"){{/infoEmail}}
|
||
|
){{/contact}}{{#license}}
|
||
|
.license(
|
||
|
License()
|
||
|
{{#licenseInfo}}.name("{{licenseInfo}}")
|
||
|
{{/licenseInfo}}{{#licenseUrl}}.url("{{licenseUrl}}")
|
||
|
{{/licenseUrl}}
|
||
|
){{/license}}{{/info}}{{/openAPI}}
|
||
|
.version("{{appVersion}}")
|
||
|
){{#hasAuthMethods}}
|
||
|
.components(
|
||
|
Components(){{#authMethods}}
|
||
|
.addSecuritySchemes("{{name}}", SecurityScheme(){{#isBasic}}
|
||
|
.type(SecurityScheme.Type.HTTP)
|
||
|
.scheme("{{scheme}}"){{#bearerFormat}}
|
||
|
.bearerFormat("{{bearerFormat}}"){{/bearerFormat}}{{/isBasic}}{{#isApiKey}}
|
||
|
.type(SecurityScheme.Type.APIKEY){{#isKeyInHeader}}
|
||
|
.`in`(SecurityScheme.In.HEADER){{/isKeyInHeader}}{{#isKeyInQuery}}
|
||
|
.`in`(SecurityScheme.In.QUERY){{/isKeyInQuery}}{{#isKeyInCookie}}
|
||
|
.`in`(SecurityScheme.In.COOKIE){{/isKeyInCookie}}
|
||
|
.name("{{keyParamName}}"){{/isApiKey}}{{#isOAuth}}
|
||
|
.type(SecurityScheme.Type.OAUTH2){{/isOAuth}}
|
||
|
){{/authMethods}}
|
||
|
){{/hasAuthMethods}}
|
||
|
}
|
||
|
}
|