如何使用 DTO 将响应设置为招摇响应中的数组

Posted

技术标签:

【中文标题】如何使用 DTO 将响应设置为招摇响应中的数组【英文标题】:how to set the response to be an array in the swagger response using DTOs 【发布时间】:2020-06-21 06:23:18 【问题描述】:

some-dto.ts

    export class CreateCatDto 
      @ApiProperty()
      name: string;

      @ApiProperty()
      age: number;

      @ApiProperty()
      breed: string;
    

我不想要这样的回应:

  @ApiOkResponse(
      description: 'Cat object',
      type: CreateCatDto
    )

但我的响应必须是类似 dto 对象的数组。 我想要像soo这样的东西

    ApiOkResponse(
          description: 'The record has been successfully removed.',
          schema: 
            type: 'array',
            properties: 
              obj: 
                type: CreateCatDto
              
            
          
        )

【问题讨论】:

【参考方案1】:

你有没有尝试过这样的事情:

@ApiOkResponse(
    description: 'Cat object',
    type: CreateCatDto,
    isArray: true // <= diff is here
)

如果有帮助请告诉我

【讨论】:

【参考方案2】:

我找到了另一种解决方案,我们可以像这样将其包装在数组中

@ApiOkResponse(
  description: 'Cat object',
  type: [CreateCatDto]
)

【讨论】:

很高兴知道数组类型可以通过在数组中使用 DTO 类型来推断!

以上是关于如何使用 DTO 将响应设置为招摇响应中的数组的主要内容,如果未能解决你的问题,请参考以下文章

我如何使用这个特定的映射器映射我的模型和 dto?

如何在 Laravel/Lumen 中捕获 401 响应?

如何将firebase REST API响应转换为打字稿中的数组?

RestAssured:如何检查 json 数组响应的长度?

如何在 C# Asp.Net 中从相当复杂的 Json 响应中创建 Dto

如何将对象响应对象的猫鼬聚合数组转换为json对象响应