Swagger-UI, независимый от кода и сервера

У меня есть требование, чтобы микросервис имелся для swagger-ui, а документация пользовательского интерфейса Swagger не зависит от кода / сервера, потому что существует много микросервисов, и я хотел бы, чтобы все они были задокументированы в одном месте и должны работать на другом сервере. Кто-нибудь пробовал это, пожалуйста, помогите мне в этом.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Версия Java на основе версии загрузки
Версия Java на основе версии загрузки
Если вы зайдете на официальный сайт Spring Boot , там представлен start.spring.io , который упрощает создание проектов Spring Boot, как показано ниже.
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
0
1
210
1

Ответы 1

Вы можете объединить документацию API нескольких служб, реализовав SwaggerResourcesProvider, а затем переопределив метод public List get(). Если вы используете zuul, ниже должно работать:

@Component
@Primary
@EnableAutoConfiguration
public class DocumentationController implements SwaggerResourcesProvider {

    @Override
    public List get() {
        List resources = new ArrayList<>();
        resources.add(swaggerResource("sample-service", "/api/sample/v2/api-docs", "2.0"));
        return resources;
    }

    private SwaggerResource swaggerResource(String name, String location, String version) {
        SwaggerResource swaggerResource = new SwaggerResource();
        swaggerResource.setName(name);
        swaggerResource.setLocation(location);
        swaggerResource.setSwaggerVersion(version);
        return swaggerResource;
    }

}

Конфигурация маршрута шлюза будет выглядеть так:

zuul:
  prefix: /api
  routes:
    account:
      path: /sample/**
      serviceId: sample-service

Исходное сообщение: Документация по API микросервисов с Swagger2

спасибо за ответ. Интересно, есть ли шанс отделить код чванства от микросервисов? В этом фрагменте кода код swagger также интегрирован с микросервисом. Возможно ли это, написав файл swagger json / yml. Если вы, пожалуйста, дайте мне знать

Asha Sivasubramanian 20.11.2018 08:29

Вы можете написать свой собственный модуль spring-boot-starter и определить там этот bean-компонент. Затем вам просто нужно добавить эту зависимость в свой микросервис.

Sukhpal Singh 20.11.2018 09:03

Поскольку я новичок в чванстве, не могли бы вы дать мне образец, чтобы сделать это с файлом yml

Asha Sivasubramanian 20.11.2018 10:06

Другие вопросы по теме