Правила FluentValidation не выводятся для Swagger для атрибута [FromRoute] - PullRequest
0 голосов
/ 08 января 2020

Я использую MicroElements.Swashbuckle.FluentValidation для вывода правил FluentValidation для документа Swagger.

Правила FluentValidation не выводятся для Swagger для атрибута [FromRoute].

В моем примере ниже , Я бы ожидал, что Swagger выведет ограничения Model, Pattern и MaxLength для модели.

Но он выводит только *, указывающий Обязательный FromRoute only shows required

Post и Put (FromBody) работает нормально для генерируемой Swagger FluentValidation. Однако Get и Delete не работают. Атрибут [FromRoute], похоже, игнорирует как атрибуты Attributes, так и правила FluentValidation независимо от того, являются ли аргументы контроллера примитивными типами (как этот):

[Route("v{version:apiVersion}/{code}")]
public async Task<IActionResult> Get([FromRoute] string code)

... или Class (как этот)

[Route("v{version:apiVersion}/{code}")]
public async Task<IActionResult> Get([FromRoute] Model model)
public class GetValidator : AbstractValidator<Model>
{
    public GetValidator()
    {
        RuleFor(x => x.Code).StringRequiredValidation();
        RuleFor(x => x.Code).StringAlphaNumericValidation();
        RuleFor(x => x.Code).StringMaxLengthValidation(5);
    }
}

public class Model 
{
    /// <summary>
    /// Unique code
    /// </summary>
    public string Code { get; set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...