Как описать объект в swagger, у которого мы точно не знаю имена свойств?

Получаю объект вида: [название продукта]: DTO с его свойствами

export class ProductsDto {
  [product: string]: ProductDto
}

export class ProductDto {
  @ApiResponseProperty()
  id: number;

  @ApiResponseProperty()
  price: number;
}


В выводе получаю пустой объект, использую NestJS.

Как это сделать?
  • Вопрос задан
  • 163 просмотра
Пригласить эксперта
Ответы на вопрос 1
Grapeoff
@Grapeoff
В чём концепция...?
А что вам мешает написать ProductDTO[] вместо создания отдельного DTO? Это тоже будет работать, а ещё лучше врубите transform: true в конфигурации валидации в вашем приложении, чтобы наверняка, так сказать.

Если у вас в приложении не включена валидация, то советую сделать это глобально в файле app.ts

Читать только если вы новичёк в Nest
Вы же не пишете отдельные ValidationPipe для каждого Create эндпоинта?

app.useGlobalPipes(new ValidationPipe({ transform: true }));

Потом легко вытаскиваем это в контроллере

@Body() productsDto: ProductDto[]
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы