当DTO为空时禁用生成API



这是我的基本控制器

export function BaseControllerFactory<E>(
createEntityDto: typeof CreateEntityDto,
updateEntityDto: typeof UpdateEntityDto,
entityToViewDto: ViewDtoContructor<E>,
): Type<IBaseController<E>> {

class BaseController implements IBaseController<E> {
constructor(private readonly baseService: BaseService<E>) {}
@Post()
@ApiOperation({ summary: 'Create new entity' })
@ApiBody({ type: createEntityDto })
async createEntity(@Body(ValidationPipe) dto: Type<CreateEntityDto>) {
//
}
@Get()
@ApiOperation({ summary: 'Get entities' })
async getEntities(@Query(ValidationPipe) getEntitiesDto: GetEntitiesDto) {
//
}
...
return BaseController;
}

这是UserController扩展BaseController

@ApiTags('Users')
@Controller('users')
export class UsersController extends BaseControllerFactory<User>(
CreateUserDto, 
UpdateUserDto,
UserToViewDto,
) {
constructor(private readonly userService: UsersService) {
super(userService);
}
}

我的问题是,当我用null替换CreateUserDto时,我希望API创建用户将不会生成。谢谢您的关注

我认为这是不可能的,DTO只是描述了输入数据的格式,这不是什么硬合约。

最新更新