Я пытаюсь создать клиент Typescript с помощью OpenAPI Generator 4.0.0-SNAPSHOT (наш менеджер по какой-то причине попросил нас использовать эту версию), который читает спецификацию OpenAPI 3.0. Все наши текущие конечные точки принимают данные либо в строке запроса, либо в теле формы, и все они работают безупречно. У меня есть новая конечная точка, которая будет считывать данные как JSON в теле POST (другие конечные точки тоже будут преобразованы). Он примет такой объект, как следующий:
{email: "[email protected]"}
Я пытаюсь задокументировать конечную точку в YAML следующим образом:
/users/send-password-reminder:
post:
[...]
requestBody:
content:
application/json:
schema:
type: object
properties:
email:
type: string
responses:
[...]
Однако, когда я генерирую клиент Typescript, он генерирует объект SendPasswordReminderRequest
, который обертывает автоматически сгенерированный объект InlineObject1
, который обертывает мой фактический email
.
Это заставляет меня использовать его как:
const req: SendPasswordReminderRequest = {
inlineObject1:{
email: "..."
}
};
APIClient.user.sendPasswordReminder(req, ...)
Вместо этого я хочу полностью избавиться от этого InlineObject1
и сделать SendPasswordReminderRequest
напрямую обертывать свойство email
и иметь возможность использовать его как:
const req: SendPasswordReminderRequest = {
email: "..."
};
APIClient.user.sendPasswordReminder(req, ...)
Я пробовал определить тело в components/requestBodies
и использовать $ref
, но он по-прежнему обертывает фактическое тело, даже несмотря на то, что он использует имя моего типа тела запроса.
Как мне избавиться от этой упаковки?
inlineObject1
наUser
. - person Shaun Luttin   schedule 14.05.2019$ref
,InlineObject1
заменяется наMyNameThatIChoose
, но я хочу полностью удалить обертку. - person Can Poyrazoğlu   schedule 14.05.2019