Входящие запросы
RequestBody#
Декоратор @RequestBody позволяет добавить описание для структуры данных, передаваемой в методах
post/put/patch.
Декоратор принимает аргумент, имеющую структуру:
interface OpenApiRequestBody {  description: string; // описание  contentType?: string; // тип данных, по умолчанию application/json  schema: SchemaObject | ThisRefContainer | Function | any; // схема данных, удовлетворяющая спецификации OAS}Применяется исключительно для конечной точки маршрута, добавляет соответствующее значение в структуру
requestBody соответствующего метода.
Пример использования:
//
class AuthForm extends toJSONSchema {  @IsString()  @JSONSchema({    description: "auth login value",    example: "user127",  })  login: string;
  @IsString()  @JSONSchema({    description: "auth password value",    format: "password",  })  password: string;}class Auth {  @Summary("Авторизация пользователя")  @Description("Ожидает логин/пароль для авторизации. Возвращает токен")  @RequestBody({ description: "Авторизационные данные", schema: AuthForm })  @Responses({ status: 200, description: "Bearer токен для входа", schema: models.Tokens })  @Post()  static Login(@Body() { login, password }) {    // ... login process  }}При загрузке файлов следует использовать корректный contentType с описанием ожидаемых полей данных.
class Files {  @Post("/upload")  @RequestBody({    description: "файл для загрузки",    contentType: "multipart/form-data",    schema: {      properties: {        file: {          type: "string",          format: "binary",        },      },    },  })  @Summary("Загрузка файла")  @Responses({ status: 200, description: "Информация о загруженном файле", schema: models.Files })  static Upload(@Files("file") file: File) {    // ...  }}