Загрузочное приложение Spring, метод swagger-ui ApiInfo() устарел. Нужна альтернатива

#java #spring #spring-boot #swagger #springfox

#java #spring #весенняя загрузка #swagger #springfox

Вопрос:

У меня есть загрузочное приложение Spring, которое использует swagger-ui для предоставления своих API. Теперь, пока я не использовал springfox-swagger-ui версии 2.6.1, мой код работал должным образом. Но когда я обновил версию до 2.7.0, она выдает ошибку о том, что метод ApiInfo устарел. Кто-нибудь может подсказать мне альтернативу, которая изменит существующий код как можно меньше и успешно запустит приложение с информацией, которая все еще присутствует в пользовательском интерфейсе Swagger в качестве описания. Я привожу здесь существующий код конфигурации swagger…

 @Configuration
@EnableSwagger2
public class SwaggerConfig {
   @Bean
   public Docket productApi() {

       return new Docket(DocumentationType.SWAGGER_2)
              .useDefaultResponseMessages(false)
              .select()          
              .apis(RequestHandlerSelectors.basePackage("com.xyz.abc"))
              .paths(regex("/api.*"))
              .build()
              .apiInfo(apiInfo());
  }

  private ApiInfo apiInfo() {
      return new ApiInfo(
              "My-Project Api",
              "Api for My Project",
              "V1",
              "NA terms of service url",
              new Contact("Team Name", "www.somexyzteamcontact.com, "NA"),
              "A license given",
              "NA");
  }
}
  

И зависимость gradle для swagger, которую я использовал в своем проекте:

 compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.7.0'

compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.7.0'
  

Комментарии:

1. верните новую папку (DocumentationType.SWAGGER_2) .useDefaultResponseMessages(false) .select() .api(RequestHandlerSelectors.basePackage(«com.xyz.abc»)) .paths(regex(«/api.*»)) .build() .tags(новый тег(«Служба домашних животных», «Все API, относящиеся к домашним животным»));

2. Он принимает два аргумента одновременно и не отображает описание на странице пользовательского интерфейса.

Ответ №1:

Попробуйте следующее, используя ApiInfoBuilder для сборки API

 private ApiInfo apiInfo() {
    return new ApiInfoBuilder().title("API Reference").version("1.0.0")
            .description("something")
            .build();
}