Совместное использование моделей OpenAPI 3 в разных API без дублирования кода - PullRequest
0 голосов
/ 21 декабря 2018

Давайте представим, что у меня есть три пружинных загрузочных микросервиса ... один предоставляет продукты, второй обеспечивает доступность продукта, а третий - операционный бэкэнд для торгового интерфейса, предоставляет объект, содержащий данные продукта и доступность продукта (позволяетназовите это ProductContainer).

Теперь в сервисе продукта я определяю модель продукта в пакете com.x.product-service.model, а в сервисе инвентаризации у меня есть модель доступности в com.x.inventory-service.model (обауказывается в OpenAPI 3).

В своем бэкэнде продавца я загружаю данные о продукте и доступность из этих двух сервисов, используя сгенерированную клиентскую библиотеку swagger, и поэтому получаю эти две модели из пакетов, как упоминалось ранее.
Service Schematics

Проблема теперь возникает, когда я хочу определить конечную точку для своего торгового сервиса, используя OpenAPI, который возвращает новую модель, содержащую эти две модели.
Когда я включаю их черезссылка с $ref регенерируется в домене модели службы продавца.
Поскольку модели теперь представляют собой разные классы в разных пакетах, я не могу просто взять модели, полученные от службы продукта / доступности, и поместить ихв ProductContainer, я должен был бы сопоставить их с эквивалентными моделями вОн торговец обслуживающим доменом.

Есть ли способ в OpenApi3 codegen ссылаться на внешние модели, не восстанавливая их в другом домене?
Или вся моя проблема показывает, что в моем дизайне есть недостатки?

...