Генератор OpenAPI typescript-axios изменяет имя свойства и не может передавать даты в виде строк

Я занимаюсь генерацией кода с помощью инструмента генератора открытого 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. Это не идеально в нашей ситуации, но, опять же, похоже, что это происходит на уровне интерфейса командной строки, поэтому я не могу предотвратить такое поведение, изменив шаблон усов.

Определение свойства 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;

Заранее благодарю за любую помощь!


person Will P.    schedule 29.08.2019    source источник
comment
Пожалуйста, откройте проблему через github.com/OpenAPITools/openapi-generator/issues/new чтобы сообщество могло вам помочь.   -  person William Cheng    schedule 04.09.2019


Ответы (1)


Вы можете передать type-mappings в интерфейс командной строки:

java -jar openapi-generator-4.2.3.jar generate --type-mappings DateTime=string и т. Д.

Это превратит тип Date в строку. Проблема в том, что не имеет значения, определяете ли вы date или date-time в определении схемы. Вы получите только string сейчас.

person NickHTTPS    schedule 23.03.2020