Приложение Spring Boot 2.2.4, использующее Swagger - PullRequest
1 голос
/ 24 февраля 2020

У меня есть REST-приложение, использующее Spring Boot 2.2.4.RELEASE. Мой REST-контроллер помечен как

@RestController
@RequestMapping("/")

Мой REST-контроллер имеет @GetMapping, @PostMapping и т. Д. c. Он работает, как и ожидалось.

Теперь я хочу интегрировать Swagger в последней версии.
https://github.com/swagger-api/swagger-core
https://github.com/swagger-api/swagger-core/wiki/Swagger-2.X---Getting-started

Показанные там зависимости Maven я добавил к своему пом. xml:

<dependency>
    <groupId>io.swagger.core.v3</groupId>
    <artifactId>swagger-core</artifactId>
    <version>2.1.1</version>
</dependency>
<dependency>
    <groupId>io.swagger.core.v3</groupId>
    <artifactId>swagger-annotations</artifactId>
    <version>2.1.1</version>
</dependency>
<dependency>
    <groupId>io.swagger.core.v3</groupId>
    <artifactId>swagger-models</artifactId>
    <version>2.1.1</version>
</dependency>
<dependency>
    <groupId>io.swagger.core.v3</groupId>
    <artifactId>swagger-integration</artifactId>
    <version>2.1.1</version>
</dependency>

Согласно «Приступая к работе», просто добавив зависимости, я должен увидеть сгенерированный OpenAPI в http://localhost: 8080 / openapi. json, но там ничего не отображается .

Можно ли использовать Swagger (swagger-core, ... в версии 2.1.1) с веб-приложениями Spring Boot?

Существует проект SpringFox, но он не обновлен. Также имеется springdo c -опенапи. Но использование Swagger напрямую было бы моей первой мыслью.

1 Ответ

0 голосов
/ 24 февраля 2020

Вам понадобится файл SwaggerConfig в вашем коде.

Конфигурация, необходимая в Swagger для Java, выглядит следующим образом: (Обратите внимание, что это просто базовый c файл, и вы можете настроить его, однако хочешь.)

@EnableSwagger2
@Configuration
public class SwaggerConfig {

    public static String bucketName;

    @Value("${swagger.config.basePackage}")
    public void setName(String name) {
        bucketName = name;
    }

    @Bean
    public Docket classifiedApi()
    {
        ArrayList<ApiKey> apiKeys=new ArrayList<>();
        apiKeys.add(apiKey());
        return new Docket(DocumentationType.SWAGGER_2).securitySchemes(apiKeys)
                .select()
                .apis(RequestHandlerSelectors.basePackage(bucketName))
                .build()
                .apiInfo(metaData());
    }

    private ApiKey apiKey() {
        return new ApiKey("Api Key", Constants.JWTToken.API_KEY, "header");
    }

    private ApiInfo metaData() {
        return new ApiInfoBuilder()
                .title("APPNAME REST API")
                .description("Spring Boot REST API for APPNAME")
                .contact(new Contact("YOURNAME ", "Coming Soon ...", "CONTACT ADDRESS"))
                .build();
    }
}
...