Избегайте переноса объекта запроса в InlineObject1 в OpenAPI Generator из спецификации OpenAPI 3.0 в Typescript - PullRequest
2 голосов
/ 14 мая 2019

Я пытаюсь сгенерировать клиента Typescript с OpenAPI Generator 4.0.0-SNAPSHOT (наш менеджер по какой-то причине попросил нас использовать эту версию), который читает спецификацию OpenAPI 3.0.Все наши текущие конечные точки принимают данные либо в строке запроса, либо в виде тела формы, и все они работают отлично.У меня есть новая конечная точка, которая будет считывать данные в виде JSON в теле сообщения POST (другие конечные точки в конечном итоге тоже будут преобразованы).Он будет принимать объект, подобный следующему:

{email: "something@domain.com"}

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

Как мне избавиться от этого переноса?

...