Использование валидационной трубы с валидатором класса

Я пытаюсь выяснить, как правильно использовать мой канал проверки и валидатор класса при вызове API.

У меня есть DTO с декораторами валидатора класса, который ведет себя как ожидалось. Тем не менее, я хотел бы использовать 'skipMissingProperties', чтобы игнорировать проверку в отношении вещей, которых нет (например, 'name' на скриншотах).

Мое намерение состоит в том, чтобы иметь возможность иметь простой DTO, который использует несколько декораторов, и пропустить проверку тех, которых нет.

К сожалению, мое использование skipMissingProperties кажется неправильным, поскольку предоставление этой опции все еще приводит к ошибкам проверки из DTO.

Как я могу использовать опцию validation-pipe skipMissingProperties вместе с декораторами валидатора класса для тех, которые действительно передаются?

В следующем коде, если я сделаю запрос на обновление с другими параметрами, но исключу "имя" из тела, валидатор класса выдает ошибки с уровня DTO.

Скриншот проверки трубы на контроллере

Скриншот UpdateViewDTO в декораторы

Конечная точка контроллера API:

    @Put(':viewId')
    public async updateView(
        @Req() request: RequestExtended,
        @Param('viewId') viewId: string,
        @Body(new ValidationPipe({ skipMissingProperties: true })) updateView: UpdateViewDto)
        : Promise<View> {

        // Do some API stuff    

       }

UpdateViewDTO:

export class UpdateViewDto {
    @IsString()
    @MinLength(1, {
        message: LanguageElements.VIEW_NAME_REQUIRED_ERROR_MSG,
    })
    @MaxLength(50, {
        message: LanguageElements.VIEW_NAME_TOO_LONG_ERROR_MSG,
    })
    public readonly name?: string;

    // Other properties 
}

0 ответов

В вашем main.ts, можете добавить skipMissingProperties: true прямо в ValidationPipe.


  app.useGlobalPipes(
    new ValidationPipe({
      skipMissingProperties: true,
      exceptionFactory: (errors: ValidationError[]) => {
        return new BadRequestException(errors[0].constraints);
      },
    }),
  );
Другие вопросы по тегам