Java Spring Swagger Startuptime поведение при запуске

У меня есть приложение Springboot, в которое я интегрировал Swagger для создания документации REST.

При использовании чванства время запуска резко увеличивается в 5 раз. У меня 30 секунд без чванства. 2 мин плюс с чванливостью.

Кроме того, время запуска, указанное в списке снизу, становится бесконечным! - И это запрещено.

Моя проблема - бесконечное время запуска + исключения, касающиеся использования памяти из google guava.

Почему так? Что я делаю неправильно? Где упущенный момент? Почему API не защищает меня от неправильных настроек?

Такое чувство, что это чванство, с одной стороны, инструмент номер один для документирования API-интерфейсов отдыха, но его использование кажется мне очень древним.

Некоторая информация о настройке (находится в maven pom.xml):
- org.springframework.boot; пружина-загрузочная-стартовая-родительская; 1.5.5.РЕЛИЗ
- io.springfox; springfox-swagger2; 2.9.2
- io.springfox; springfox-swagger-ui; 2.9.2

Я где-то подцепил, что нужно поменять библиотеку googles guava; что я и сделал: https://github.com/springfox/springfox/issues/2616#issuecomment-412811912

Действительно ли swagger / springfox так хороши для документирования API из Spring? - Какие были бы альтернативы визуализации документации?

@Configuration
@EnableSwagger2
public class Swagger2UiConfiguration extends WebMvcConfigurerAdapter {
  ...
  @Bean(name="restPublicSwaggerV1Api")
  public Docket publicV1Api(BuildProperties build) {

    final ApiInfoBuilder apiInfo = new ApiInfoBuilder()
            .title(build.getName())
            .description("Description for public API")
            .version( build.getVersion() );

    final long TIME = System.currentTimeMillis();

    final Docket docket = new Docket(DocumentationType.SWAGGER_2)
            .groupName( "public-v1" )
            .apiInfo( apiInfo.build() )
            .select()
            .apis( (wmrh)->{ // springfox.documentation.spring.web.WebMvcRequestHandler

                final StringBuffer sb = new StringBuffer();
                sb.append( wmrh.getClass().getTypeName()  +"\n\t"+ wmrh );
                final RequestHandlerKey rhk = wmrh.key();

                boolean result = false;

                for( String pathMapping : rhk.getPathMappings() ) {
                    sb.append( "\n\t-> "+ pathMapping );
                    result |= pathMapping.startsWith( "/api/public/" );
                }

                sb.append( "\n\t=>> "+ result +", time: "+ Util.formatTime( System.currentTimeMillis() - TIME ) +" after start." );

                LOG.debug( sb.toString() );

                return result;
            } )
            .paths( (p)->{ return true; } )
            .build();

    LOG.debug( "instantiated: {}", docket );
    return docket;
}

person Dirk Schumacher    schedule 30.01.2019    source источник


Ответы (1)


Попробуйте использовать последнюю версию swagger-ui (swagger-js 2.1.17), как указано в

https://github.com/swagger-api/swagger-ui/issues/1919

person Mebin Joe    schedule 30.01.2019
comment
Я взгляну. Первый комментарий начнется 27 января 2016 года. Спасибо ... Мне было бы интересно, серьезно ли кто-нибудь использует его на java / spring. - person Dirk Schumacher; 30.01.2019
comment
Я не использую 2.9.2, что выше? Если я правильно понял, вы говорите о какой-то js-библиотеке (я думаю, поскольку упоминается swagger-js 2.1.17). У меня проблема возникает при запуске java, и я не могу отображать ее в браузере. Он больше касается сбора данных swagger / springfox для создания gui / html для отображения. - person Dirk Schumacher; 30.01.2019
comment
swagger-ui версия 3.18.3 - person Mebin Joe; 30.01.2019
comment
Привет, Мебин, я запутался ... Я запускаю java / spring в настройке maven, где я ссылаюсь на библиотеки io.springfox. Их максимальное управление версиями в настоящее время составляет 2.9.2, как показано здесь, mvnrepository.com/artifact/io. springfox / springfox-swagger2 У вас есть другой способ настроить его? Тогда это будут настройки maven. Где это посмотреть? Посмотрите, как на библиотеки ссылаются в maven pom.xml: pastebin.com/9WMr1fET - person Dirk Schumacher; 30.01.2019