OpenAPI生成器typescript-axios更改属性名称,并且不能将日期作为字符串传递

时间:2019-08-29 14:59:56

标签: typescript axios openapi openapi-generator

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

  1. 我们从中生成的打开的api文档中有一个名为long的属性。但是,它生成的接口将该属性更改为_long,这是不正确的。我在执行此操作的小胡子模板中找不到任何位置,因此必须在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级别,因此我无法通过修改胡子模板来防止这种行为。

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;

在此先感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您可以将type-mappings传递到CLI:

java -jar openapi-generator-4.2.3.jar generate --type-mappings DateTime=string等。

这会将类型Date转换为字符串。问题是,在架构定义中定义date还是date-time都没有关系。您现在只会得到string