0

我正在使用开放 api 生成器工具进行代码生成以生成typescript-axios客户端,但不幸的是,我遇到了一些问题。

  1. 我们从被调用的开放 api 文档中有一个属性long。但是,它生成的接口会更改_long不正确的属性。我在 mustache 模板中找不到执行此操作的任何位置,因此它必须在 CLI 层中发生。可以防止这种行为吗?

Swagger 属性定义:

"long": {
  "type": "number",
  "description": "The longitude location.",
  "format": "double",
  "nullable": true
}

Codegen接口属性输出:

/**
 * The longitude location.
 * @type {number}
 * @memberof ...
 */
_long?: number | null;
  1. 日期作为字符串传递给 API,并在开放的 api 文档中如此定义,但似乎当它们具有date-time格式时,接口表示它需要一个Date对象。这在我们的情况下并不理想,但这似乎又发生在 CLI 级别,因此我无法通过修改 mustache 模板来防止这种行为。

Swagger 属性定义:

"startDate": {
  "type": "string",
  "description": "Gets or sets the start date of the search date range.",
  "format": "date-time",
  "nullable": true
},

Codegen接口属性输出:

/**
 * Gets or sets the start date of the search date range.
 * @type {Date}
 * @memberof ...
 */
startDate?: Date | null;

提前感谢您的帮助!

4

1 回答 1

1

您可以将 a 传递type-mappings给 CLI:

java -jar openapi-generator-4.2.3.jar generate --type-mappings DateTime=stringETC..

这会将类型Date转换为字符串。问题是,在架构定义中定义 adate或 a并不重要。date-time你只会得到string现在。

于 2020-03-23T21:00:39.147 回答