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




Вы можете объединить документацию 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. Если вы, пожалуйста, дайте мне знать
Вы можете написать свой собственный модуль spring-boot-starter и определить там этот bean-компонент. Затем вам просто нужно добавить эту зависимость в свой микросервис.
Поскольку я новичок в чванстве, не могли бы вы дать мне образец, чтобы сделать это с файлом yml
Возможно связанные: Пользовательский интерфейс Swagger с несколькими URL-адресами, Как организовать / построить интерфейс пользовательского интерфейса Swagger для каталога, содержащего множество файлов определений Swagger .json / .yml