我的项目目录结构如下
└── 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
swagger 页面下开始正常工作。但是,当我将它移动到一个包中时(在这种情况下app
),那么招摇页面除了出现以下错误外不显示任何内容
错误: 无法推断基本 URL。这在使用动态 servlet 注册或 API 位于 API 网关后面时很常见。基本 url 是提供所有 swagger 资源的根。例如,如果 api 在http://example.org/api/v2/api-docs上可用,那么基本 url 是http://example.org/api/。请手动输入位置:
我的招摇配置如下
@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