【发布时间】:2020-04-28 22:14:20
【问题描述】:
我的项目目录结构如下
└── activity
├── app
│ └── ActivityApplication.kt
├── controller
│ └── WelcomeMessageController.kt
├── exception
│ ├── ActivityErrorResponse.kt
│ ├── handler
│ │ └── ActivityServiceExceptionHandler.kt
│ └── response
│ └── ResponseCode.kt
├── model
│ └── WelcomeMessage.kt
├── repository
│ └── WelcomeMessageRepository.kt
├── service
│ └── WelcomeService.kt
└── swagger
└── SwaggerConfig.kt
当我将我的ActivityApplication.kt 文件移动到根包,即直接在activity 下,招摇页面开始正常工作。但是,当我将它移动到一个包中(在本例中为 app)时,swagger 页面只显示以下错误
错误: 无法推断基本网址。这在使用动态 servlet 注册或 API 位于 API Gateway 后面时很常见。基本 url 是提供所有 swagger 资源的根。例如如果 api 在 http://example.org/api/v2/api-docs 可用,则基本 url 为 http://example.org/api/。请手动输入位置:
我的 swagger 配置如下所示
@Configuration
@EnableSwagger2
class SwaggerConfig {
@Bean
fun api(): Docket {
return Docket(DocumentationType.SWAGGER_2)
.pathProvider(object: RelativePathProvider(null) {
override fun getApplicationBasePath(): String {
return "/activity"
}
})
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.activity.controller"))
.build()
.apiInfo(buildApiInfo())
}
private fun buildApiInfo(): ApiInfo? {
return ApiInfo(
...)
}
}
ActivityApplication.kt只有以下代码
@SpringBootApplication
class ActivityApplication
fun main(args: Array<String>) {
runApplication<ActivityApplication>(*args)
}
- Java 版本:OpenJDK 11
- Springfox-swagger2 版本:2.9.2
【问题讨论】:
标签: spring-boot kotlin swagger openjdk-11