假设我在我的 openapi.yml 中有这个定义(这只是一个虚构的例子来描述我遇到的问题):
components:
schemas:
Address:
type: object
properties:
name:
type: string
zip:
type: integer
format: int64
town:
type: string
这将导致生成模型的代码,如下所示:
public class Address {
@JsonProperty("name")
private String name = null;
@JsonProperty("zip")
private Long zip = null;
@JsonProperty("town")
private String town = null;
...
我的问题是我必须将此 Pojo 保存在数据库中并且不存在表Address
(假设它被调用Places
)并且邮政编码的列被调用zipcode
而不是zip
.
所以我需要两件事:
- 一种告诉 OpenAPI 别名
Address=Places
和zip=zipcode
. - 一种使此信息更改创建的代码的方法。例如,对于 Hibernate,这意味着在正确的位置添加
@Table(name="Places")
和@Column(name="zipcode")
。
重要说明:我无法更改 API,预计会坚持使用Address
和zip
.
这可以做到吗?我检查了规格以及 swagger-codegen 和 openapi-generator(我更喜欢后者),但没有发现任何迹象表明此类内容已被涵盖。对于 openapi-generator,我查看了Mustache 模板,据我所知,有节点代码引用了 yaml 文件中定义的任何“别名信息”。
我是否必须努力定义像这样或这样的OpenAPI扩展,并自己自定义模板?我能找到的最接近的是这个现有的扩展,它定义了一种别名。但这仅满足我要求的第一部分。