NestJs Swagger 混合类型

Posted

技术标签:

【中文标题】NestJs Swagger 混合类型【英文标题】:NestJs Swagger mixed types 【发布时间】:2021-03-04 10:42:48 【问题描述】:

我有一个类,其中一个属性可以是字符串或字符串数​​组,不知道我应该如何在 swagger 中定义它

    @ApiProperty(
        description: `to email address`,
        type: ???, <- what should be here?
        required: true,
    )
    to: string | Array<string>;

更新

正如@Youba 建议的答案,我试过了

    @ApiProperty(
        description: `to email address(es)`,
        additionalProperties: 
            oneOf: [
                 type: 'string' ,
                 type: 'Array<string>' ,
            ],
        ,
        required: true,
    )

    @ApiProperty(
        description: `to email address(es)`,
        additionalProperties: 
            oneOf: [
                 type: 'string' ,
                 type: 'string[]' ,
            ],
        ,
        required: true,
    )

    @ApiProperty(
        description: `to email address(es)`,
        additionalProperties: 
            oneOf: [
                 type: 'string' ,
                 type: '[string]' ,
            ],
        ,
        required: true,
    )

但结果如下图,不正确

【问题讨论】:

【参考方案1】:

请尝试

@ApiProperty(
   oneOf: [
       type: 'string' ,
       
         type: 'array',
         items: 
            type: 'string'
         
      
   ]
)

Array&lt;TItem&gt; 可以在 OpenAPI 中用type: 'array', items: type: TItem 表示

【讨论】:

以上是关于NestJs Swagger 混合类型的主要内容,如果未能解决你的问题,请参考以下文章

NestJs Swagger:如何为动态类定义 Api 属性

@nestjs/swagger:是不是可以防止网络钓鱼?

NestJS/swagger:ApiExtraModel 期望啥模型作为参数?

@nestjs/swagger 没有设置授权标头

@nestjs/swagger:如何添加 API URL?

NRWL + NestJS 尝试使用 Swagger 插件