Как перенести чванство-ui.html Использование springfox и JAX-RS?

голоса
1

Я использую JAX-RS с Spring ботинком и springfox для создания чванства-UI от аннотаций.

В настоящее время документы находятся на HTTP: // локальный: 8080 / чванство-ui.html

Тем не менее, теперь у меня есть требование , чтобы переместить это HTTP: // локальный: 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: // локальный: 8080 / документация / чванство-ui.html . Тем не менее, он также по- прежнему оставляет на HTTP: // локальный: 8080 / чванство-ui.html

Как изменить его от swagger-ui.htmlк index.html?

Как переместить его из HTTP: // локальный: 8080 / чванство-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);
  }

}

Как я могу двигаться чванство-UI в мой сервлет корень вместо моего контекста корня?

Задан 20/10/2018 в 05:26
источник пользователем
На других языках...                            


1 ответов

голоса
0

Я сделал обходной путь для вас. Сначала я создал контроллер с помощью метода, который будет указывать на индекс.

@Controller
public class SwaggerUIRedirectController {

    @RequestMapping("/index")
    public String uiRedirectLink() {
        return "index";
    }

}

Теперь создать под SRC / основной / ресурсы / шаблоны файлов index.html и скопировать содержимое из этого файла https://github.com/sikynko/swagger_workaround/blob/master/index.html в ваш.

А теперь создать под SRC / основной / ресурсы / статический / springfox.js и копировать содержимое с

https://github.com/sikynko/swagger_workaround/blob/master/springfox.js

в вашей. Теперь , когда вы пишете HTTP: // локальный: 8080 / индекс вы должны увидеть чванство.

Я просто скопировал HTML из springfox-развязность-ш * .jar чванство-ui.html и в сценарии springfox.js я ahve изменил линию от

var urlMatches = /(.*)\/swagger-ui.html.*/.exec(window.location.href);

на

var urlMatches = /(.*)\/(.*).*/.exec(window.location.href);

Я надеюсь, что это поможет

Ответил 20/10/2018 в 18:44
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more