首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

NestJS Swagger -如何声明多选枚举字段?

NestJS Swagger是一个用于生成API文档和交互式测试界面的工具。它基于OpenAPI规范(以前称为Swagger规范)并与NestJS框架集成,可以自动生成API文档,包括请求和响应的结构、参数、路径等信息。

在NestJS Swagger中声明多选枚举字段可以通过使用装饰器@ApiProperty()来实现。以下是声明多选枚举字段的步骤:

  1. 首先,确保你的NestJS应用已经安装并配置了@nestjs/swagger模块。
  2. 在你的DTO(数据传输对象)或实体类中,使用@ApiProperty()装饰器来声明多选枚举字段。例如,假设你有一个名为UserDto的DTO类,其中有一个名为roles的字段,它是一个多选枚举字段,可以选择多个角色:
代码语言:txt
复制
import { ApiProperty } from '@nestjs/swagger';

export class UserDto {
  @ApiProperty({
    enum: ['admin', 'user', 'guest'],
    enumName: 'UserRole',
    isArray: true,
  })
  roles: string[];
}

在上面的例子中,enum属性指定了可选的枚举值,enumName属性指定了枚举的名称,isArray属性设置为true表示这是一个数组类型的字段。

  1. 在你的控制器类中,使用@ApiBody()装饰器将DTO类与请求体关联起来。例如:
代码语言:txt
复制
import { Controller, Post, Body } from '@nestjs/common';
import { ApiBody } from '@nestjs/swagger';
import { UserDto } from './user.dto';

@Controller('users')
export class UsersController {
  @Post()
  @ApiBody({ type: UserDto })
  createUser(@Body() userDto: UserDto) {
    // 处理创建用户的逻辑
  }
}

在上面的例子中,@ApiBody()装饰器将UserDto类与createUser()方法的请求体关联起来。

这样,当你使用NestJS Swagger生成API文档时,它将会显示roles字段是一个多选枚举字段,可选的枚举值为adminuserguest

推荐的腾讯云相关产品:腾讯云API网关(API Gateway)可以帮助您快速构建、发布、运维和安全管理API,提供了丰富的功能和工具来管理和保护API。您可以通过以下链接了解更多信息:腾讯云API网关产品介绍

请注意,以上答案仅供参考,具体的实现方式可能会根据您的实际需求和环境而有所不同。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券