标签: openapi-generator-cli

如何在 OpenApi 中定义别名,最终在 Pojo 中使用它

假设我的 openapi.yml 中有这个定义(这只是一个虚构的示例来描述我遇到的问题):

components:
  schemas:
    Address:
      type: object
      properties:
        name:
          type: string
        zip:
          type: integer
          format: int64
        town:
          type: string
Run Code Online (Sandbox Code Playgroud)

这将导致生成如下所示的模型代码:

public class Address   {
  @JsonProperty("name")
  private String name = null;

  @JsonProperty("zip")
  private Long zip = null;

  @JsonProperty("town")
  private String town = null;
...
Run Code Online (Sandbox Code Playgroud)

我的问题是,我必须将这个 Pojo 保留在数据库中,并且不存在表Address(让我们假设它被调用Places),并且邮政编码的列被调用zipcode而不是zip.

所以我需要件事:

  • 一种告诉 OpenAPI 有关别名Address=Placeszip=zipcode.
  • 一种使此信息更改所创建的代码的方法。例如,对于 Hibernate,这意味着在正确的位置添加@Table(name="Places")和。@Column(name="zipcode")

重要提示:我无法更改 API,预计会坚持使用Addresszip

这可以做到吗?我检查了规范以及 swagger-codegen …

swagger openapi swagger-codegen openapi-generator openapi-generator-cli

7
推荐指数
1
解决办法
3042
查看次数

错误:找不到规范文件,请检查 OpenAPI 规范的路径并重试

我在 Docker 上使用openapi 生成器生成客户端 API 时遇到问题。运行后:

docker run --rm -v "${PWD}:/local" openapitools/openapi-generator-cli generate -i ./petstore.yml -g typescript-angular -o api/petstore
Run Code Online (Sandbox Code Playgroud)

我得到了:

[error] The spec file is not found: ./petstore.yml
[error] Check the path of the OpenAPI spec and try again.
Run Code Online (Sandbox Code Playgroud)

还尝试过:

docker run --rm -v "${PWD}" openapitools/openapi-generator-cli generate -i ./petstore.yml -g typescript-angular -o api/petstore

docker run --rm -v "${PWD}:/local" openapitools/openapi-generator-cli generate -i petstore.yml -g typescript-angular -o api/petstore
Run Code Online (Sandbox Code Playgroud)

docker openapi-generator-cli

6
推荐指数
1
解决办法
2639
查看次数