Я использую JAX-RS с Spring Boot и springfox для генерации swagger-ui из аннотаций.
В настоящее время документы расположены в http://localhost:8080/swagger-ui.html
Однако у меня теперь естьтребование переместить это в http://localhost:8080/api/index.html
После комментарий к этой проблеме У меня есть класс, который выглядит следующим образом:
@Configuration
public class SwaggerUIConfig extends WebMvcConfigurerAdapter {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addRedirectViewController("/documentation/v2/api-docs", "/v2/api-docs");
registry.addRedirectViewController("/documentation/configuration/ui", "/configuration/ui");
registry.addRedirectViewController("/documentation/configuration/security", "/configuration/security");
registry.addRedirectViewController("/documentation/swagger-resources", "/swagger-resources");
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry
.addResourceHandler("/documentation/**")
.addResourceLocations("classpath:/META-INF/resources/");
}
}
Это помещает страницу в http://localhost:8080/documentation/swagger-ui.html. Однако, это также все еще оставляет это в http://localhost:8080/swagger-ui.html
Как я могу изменить это с swagger-ui.html
на index.html
?
Как мне переместить это из http://localhost:8080/swagger-ui.html вместо того, чтобы скопировать его (или просто сделать оригинал недоступным)?
Если я найду / заменим приведенный выше код для documentation
api
, у меня возникнет другая проблема, поскольку мой сервлет уже определен в / api.
@SpringBootApplication
@EnableSwagger2
public class SpringApplication extends SpringBootServletInitializer {
@Bean
public ServletRegistrationBean api() {
ServletRegistrationBean registration = new ServletRegistrationBean(new ServletContainer(),"/api/*");
registration.addInitParameter(ServletProperties.JAXRS_APPLICATION_CLASS, SwaggerResourceConfig.class.getName());
registration.setName("api");
return registration;
}
}
public class SwaggerResourceConfig extends ResourceConfig {
public SwaggerResourceConfig() {
register(ApiListingResource.class);
register(SwaggerSerializers.class);
}
}
Как я могу переместить swagger-ui в мой корень сервлета вместо моего корня контекста?