Asp.Net WebAPI, как валидировать только структуру запроса, но не данные

Рейтинг: 0Ответов: 0Опубликовано: 10.05.2023

Допустим, что есть такая DTO:

public class MyDto
{
    [Required]
    public string First { get; set; }

    public string[] Second { get; set; }
}

Вопрос: как валидировать только структуру запроса, но игнорировать [Required] поле (сразу отвечу на вопрос, что Required у него стоит для Swagger'a и убирать его не хотелось бы), т.к. дальше будет этим заниматься FluentValidation
Т.е. запрос вида:

{"first": "", "second": []}

Будет валидный
А запрос вида:

{"first": 1, "second": []}

Уже не валидный, т.к. first теперь имеет тип int, а ожидалось string, эту ошибку и нужно будет показать клиенту и не более.
Пробовал переопределить всё это дело через ConfigureApiBehaviorOptions => InvalidModelStateResponseFactory, но туда попадают и Required (и подобные) ошибки.
Использую Net 7.

Ответы

Ответов пока нет.