在不重复代码的情况下,在不同的API中共享OpenAPI 3模型

时间:2018-12-21 10:36:37

标签: spring-boot swagger microservices openapi openapi-generator

让我们想象一下,我有三个Spring Boot微服务...一个提供产品,第二个提供产品可用性,第三个提供商人前端的可操作后端,提供一个包含产品数据和产品可用性的对象(让称为ProductContainer)。

现在,在产品服务中,我在com.x.product-service.model包中定义了一个产品模型,在库存服务中,我在com.x.inventory-service.model中提供了一个可用性模型(均由OpenAPI指定) 3)。

在我的商人后端中,我使用生成的swagger客户端库加载了这两个服务的产品数据和可用性,因此如上所述从软件包中接收了这两个模型。
Service Schematics

当我想使用OpenAPI为我的商家服务定义一个端点时,就会出现问题,该端点返回一个包含这两个模型的新模型。
当我通过与$ref的链接包括它们时,它们将在商家服务的模型域中重新生成。
因为模型现在在不同的包中是不同的类,所以我不能仅将从产品/可用性服务中收到的模型放入ProductContainer中,而必须将它们映射到商家服务域中的等效模型。

OpenApi3代码生成中是否有一种方法可以链接到外部模型,而无需在其他域中重新生成它们?
还是整个问题都表明我的设计存在缺陷?

0 个答案:

没有答案