Swagger NestJS/CrudController作为GetManyBase大摇大摆

Swagger NestJS/CrudController作为GetManyBase大摇大摆,swagger,nestjs,Swagger,Nestjs,如何在CrudController中修饰一个自定义方法,使Swagger文档显示为来自getManyBase的文档?这意味着我需要所有的过滤器字段 我试过这样做 @Get('/projects') @UseInterceptors(CrudRequestInterceptor) @ApiResponse({ status: 200, type: Project, isArray: true }) getManyProjects(@ParsedRequest() req: CrudR

如何在CrudController中修饰一个自定义方法,使Swagger文档显示为来自getManyBase的文档?这意味着我需要所有的过滤器字段

我试过这样做

 @Get('/projects')
  @UseInterceptors(CrudRequestInterceptor)
  @ApiResponse({ status: 200, type: Project, isArray: true })
  getManyProjects(@ParsedRequest() req: CrudRequest, @Request() request)
    : Promise<GetManyDefaultResponse<Project> | Project[]> {
    const { id, role } = request.user;
    if (role === UserRoles.User) {
      req.parsed.filter.push({
        field: 'userId',
        operator: 'eq',
        value: id,
      });
    }
    return this.projectService.getMany(req);
  }
@Get(“/projects”)
@使用拦截器(CrudRequestInterceptor)
@ApiResponse({status:200,type:Project,isArray:true})
getManyProjects(@ParsedRequest()请求:CrudRequest,@Request()请求)
:承诺{
const{id,role}=request.user;
if(role===UserRoles.User){
req.parsed.filter.push({
字段:“userId”,
运算符:“eq”,
值:id,
});
}
返回此.projectService.getMany(req);
}
但是Swagger文档显示查询参数为空,

而我期望的是像
getManyBase
这样的东西。

有趣的是,如果我发送
过滤器
字符串,该方法将正常工作,但我也需要大摇大摆地显示它们。 建议?

参见回购协议中的此区域

如果您向构造函数中添加类似的内容,则应执行以下操作:

import { Swagger } from '@nestjsx/crud/lib/crud';

...

constructor() {
    const metadata = Swagger.getParams(this.getManyProjects);
    const queryParamsMeta = Swagger.createQueryParamsMeta('getManyBase');
    Swagger.setParams([...metadata, ...queryParamsMeta], this.getManyProjects);
}