Я пытаюсь изменить базовый путь чванства. В настоящее время у меня есть
@RequestMapping(path = "/api/resourceName/v1")
и конфиг swagger
return new Docket(DocumentationType.SWAGGER_2).
select()
.apis(RequestHandlerSelectors.basePackage("com.company"))
.paths(PathSelectors.ant("/api/**"))
.build()
.apiInfo(apiInfo());
Это дает базовый путь сваггера как "basePath": "/"
Я хочу добавить базовый путь как "basePath": "/api"
поэтому я следовал разным потокам, подобным этому Как изменить basePath для Springfox Swagger 2.0 и добавил
return new Docket(DocumentationType.SWAGGER_2).
select()
.apis(RequestHandlerSelectors.basePackage("com.ford.vadr"))
.paths(PathSelectors.ant("/api/vehicleSoftware/**"))
.build()
.apiInfo(apiInfo())
.pathProvider(new RelativePathProvider(servletContext) {
@Override
public String getApplicationBasePath() {
return "/api";
}
});
, теперь базовый путь изменен на "basePath": "/api"
, и я обновил свое отображение пути на @RequestMapping(path = "/resourceName/v1")
как база была добавлена.
Когда я отправляю запрос от swagger, запрос отправляется на /api/resourceName/v1
, но служба возвращает 404
.
Когда я отправляю запрос через почтальона на /resourceName.v1
, тогда он работает.
Таким образом, API регистрируется как /resourceName/v1
, и база просто добавляется swagger поверх него, и не будет работать, если запрос отправлен через пользовательский интерфейс
Затем я добавил server.servlet-path=/api
на application.properties
для регистрации basepath в отображении запроса, и теперь swagger отображает базовый путь как /api
без необходимости дополнительной настройки.
Но проблема в том, что теперь документация по swagger доступна на http://localhost:8080/api/swagger-ui.html
вместо http://localhost:8080/swagger-ui.html
. Поскольку у нас есть все наши другие сервисы, выполните c в http://host/swagger-ui.html
, это бесполезно.
Есть ли способ добавить базу и по-прежнему получить доступ к do c в http://host/swagger-ui.html
и api работает как ожидается от чванства и почтальона