Использование конфигурации SwaggerUI из родительского проекта (шасси микросервиса) - PullRequest
0 голосов
/ 05 ноября 2019

Я создаю проект, который является своего рода микросервисным шасси. Я пытаюсь добавить поддержку SwaggerUI, но я столкнулся с некоторыми проблемами. Я хотел бы настроить Swagger в проекте шасси и использовать эту конфигурацию в дочернем проекте. Также я хотел бы документировать все конечные точки REST из шасси и из дочернего проекта.

Базовая конфигурация из шасси (родительский проект) (Swagger2Config.class)

@Bean
public Docket api() {
    return new Docket(DocumentationType.SWAGGER_2)
            .select()
            .paths(PathSelectors.any())
            .build()
            .tags(new Tag("", ""));
            // Also with some additional info
}

Пример конечной точки REST (родительский проект))

@GetMapping("/example")
public String getExample() {
     return "Example";
}

pom.xml из проекта шасси (конфигурация Swagger является лишь одним из модулей)

<parent>
    <artifactId>spring-example-chassis</artifactId>
    <groupId>com.example.microservice</groupId>
    <version>0.0.1-SNAPSHOT</version>
</parent>

<artifactId>rest</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>

Зависимость дочернего проекта pom.xml от родительского проекта

<dependency>
   <groupId>com.example.microservice</groupId>
   <artifactId>rest</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <type>pom</type>
</dependency>

Пример дочернего проекта REST endpoint

@GetMapping("/child")
public String getExample() {
     return "ChildExample";
}

Функция main () дочернего проекта

@SpringBootApplication
public class Main {
    public static void main(String[] args) {
        SpringApplication.run(Main.class, args);
    }
}

Я пытался аннотировать основной класс с помощью @ EnableSwagger2, но он создает конфигурацию по умолчанию и показывает только /дочерняя конечная точка. Я пытался использовать @Import (Swagger2Configuration.class), но он также не работает должным образом, однако я должен попробовать это несколько раз больше.

Знаете ли вы, есть ли способ создать страницу SwaggerUI? со всеми конечными точками из родительского и дочернего проекта? Есть ли способ передать пользовательские значения из дочернего проекта в родительскую конфигурацию, например, версию документации, пользовательские теги или любую другую информацию, которую использует Swagger?

Заранее спасибо

...