Swagger OpenAPI 模型与 JPA 实体之间的映射

Mapping between Swagger OpenAPI model and JPA entity

我正在尝试映射 openAPI 模型(使用 Swagger codegen 生成)和 JPA 实体(从数据库生成Hibernate 中的模式)在我的 java REST-API 中,以便我可以使用 JPA(hibernate)实体将接收到的模型保存到数据库中,并使用模型创建响应以从数据库中获取数据。

我知道我可以分别创建使用模型和实体,并创建一种从一个模型转换为另一个模型的机制。但是,如果模型中的数据库或字段有任何更改,我需要同时更新模型和实体,这很麻烦。

有什么方法可以定义 model/entity 以便它可以在 Swagger 和 hibernate JPA 中使用?并且不需要创建它们(这是多余的)

经过一些研究,我发现了 DTO(数据传输对象)的概念,可以根据您对 API 调用的响应将其映射到您的模型。

您可以使用 ModelMapper 或创建自定义映射器来执行从模型到 DTO 的转换。

您可以在 spring boot(Gradle) 中为 ModelMapper 使用以下包:

implementation 'org.modelmapper:modelmapper:2.3.0'