Swagger NestJS/CrudController作为GetManyBase大摇大摆
如何在CrudController中修饰一个自定义方法,使Swagger文档显示为来自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
@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);
}