NestJS TypeORM 可选查询不起作用
NestJS TypeORM Optional Query not working
我有一个问题,我已将查询参数设置为可选,但它并没有反映出 optional in swagger,
这是我的代码:
@Get('pagination')
@ApiOperation({ summary: 'Get Activity Post Pagination Enabled' })
public async getActivityPostPagination(
@Query('page', new DefaultValuePipe(1), ParseIntPipe) page: number,
@Query('limit', new DefaultValuePipe(10), ParseIntPipe) limit: number,
@Query('user_id') user_id?: string,
@Query('badge_id') badge_id?: string,
@Query('title') title?: string,
) {
//code here
}
不过是swagger,显示是这样的:
页面和限制不是可选的,但对于其他查询参数必须是可选的,我在这里缺少什么?
谢谢
您应该从@nestjs/swagger 包中添加@ApiQuery 标签,并为可选字段传入 required: false 参数。
@Get('pagination')
@ApiOperation({ summary: 'Get Activity Post Pagination Enabled' })
@ApiQuery({ name: 'user_id', required: false, type: String })
@ApiQuery({ name: 'badge_id', required: false, type: String })
public async getActivityPostPagination(
@Query('page', new DefaultValuePipe(1), ParseIntPipe) page: number,
@Query('limit', new DefaultValuePipe(10), ParseIntPipe) limit: number,
@Query('user_id') user_id?: string,
@Query('badge_id') badge_id?: string,
@Query('title') title?: string,
) {
//code here
}
我有一个问题,我已将查询参数设置为可选,但它并没有反映出 optional in swagger,
这是我的代码:
@Get('pagination')
@ApiOperation({ summary: 'Get Activity Post Pagination Enabled' })
public async getActivityPostPagination(
@Query('page', new DefaultValuePipe(1), ParseIntPipe) page: number,
@Query('limit', new DefaultValuePipe(10), ParseIntPipe) limit: number,
@Query('user_id') user_id?: string,
@Query('badge_id') badge_id?: string,
@Query('title') title?: string,
) {
//code here
}
不过是swagger,显示是这样的:
页面和限制不是可选的,但对于其他查询参数必须是可选的,我在这里缺少什么?
谢谢
您应该从@nestjs/swagger 包中添加@ApiQuery 标签,并为可选字段传入 required: false 参数。
@Get('pagination')
@ApiOperation({ summary: 'Get Activity Post Pagination Enabled' })
@ApiQuery({ name: 'user_id', required: false, type: String })
@ApiQuery({ name: 'badge_id', required: false, type: String })
public async getActivityPostPagination(
@Query('page', new DefaultValuePipe(1), ParseIntPipe) page: number,
@Query('limit', new DefaultValuePipe(10), ParseIntPipe) limit: number,
@Query('user_id') user_id?: string,
@Query('badge_id') badge_id?: string,
@Query('title') title?: string,
) {
//code here
}