-
-
Notifications
You must be signed in to change notification settings - Fork 71
Description
Error when generating Swagger documentation. Results in wrong and missing tags in request body.
error:
warn:` MicroElements.Swashbuckle.FluentValidation.FluentValidationRules[0]
Error on apply rule 'NotEmpty' for key 'File'.
System.NullReferenceException: Object reference not set to an instance of an object.
at MicroElements.Swashbuckle.FluentValidation.FluentValidationRules.<>c.b__6_3(RuleContext context) in /home/travis/build/micro-elements/MicroElements.Swashbuckle.FluentValidation/src/MicroElements.Swashbuckle.FluentValidation/FluentValidationRules.cs:line 141
at MicroElements.Swashbuckle.FluentValidation.FluentValidationOperationFilter.ApplyInternal(Operation operation, OperationFilterContext context) in /home/travis/build/micro-elements/MicroElements.Swashbuckle.FluentValidation/src/MicroElements.Swashbuckle.FluentValidation/FluentValidationOperationFilter.cs:line 91
warn: MicroElements.Swashbuckle.FluentValidation.FluentValidationRules[0]
Error on apply rule 'NotEmpty' for key 'File'.
System.NullReferenceException: Object reference not set to an instance of an object.
at MicroElements.Swashbuckle.FluentValidation.FluentValidationRules.<>c.b__6_3(RuleContext context) in /home/travis/build/micro-elements/MicroElements.Swashbuckle.FluentValidation/src/MicroElements.Swashbuckle.FluentValidation/FluentValidationRules.cs:line 141
at MicroElements.Swashbuckle.FluentValidation.FluentValidationOperationFilter.ApplyInternal(Operation operation, OperationFilterContext context) in /home/travis/build/micro-elements/MicroElements.Swashbuckle.FluentValidation/src/MicroElements.Swashbuckle.FluentValidation/FluentValidationOperationFilter.cs:line 91
warn: MicroElements.Swashbuckle.FluentValidation.FluentValidationRules[0]
Error on apply rule 'Length' for key 'Name'.
System.NullReferenceException: Object reference not set to an instance of an object.
at MicroElements.Swashbuckle.FluentValidation.FluentValidationRules.<>c.b__6_5(RuleContext context) in /home/travis/build/micro-elements/MicroElements.Swashbuckle.FluentValidation/src/MicroElements.Swashbuckle.FluentValidation/FluentValidationRules.cs:line 150
at MicroElements.Swashbuckle.FluentValidation.FluentValidationOperationFilter.ApplyInternal(Operation operation, OperationFilterContext context) in /home/travis/build/micro-elements/MicroElements.Swashbuckle.FluentValidation/src/MicroElements.Swashbuckle.FluentValidation/FluentValidationOperationFilter.cs:line 91
warn: MicroElements.Swashbuckle.FluentValidation.FluentValidationRules[0]
Error on apply rule 'Length' for key 'Name'.
System.NullReferenceException: Object reference not set to an instance of an object.
at MicroElements.Swashbuckle.FluentValidation.FluentValidationRules.<>c.b__6_5(RuleContext context) in /home/travis/build/micro-elements/MicroElements.Swashbuckle.FluentValidation/src/MicroElements.Swashbuckle.FluentValidation/FluentValidationRules.cs:line 150
at MicroElements.Swashbuckle.FluentValidation.FluentValidationOperationFilter.ApplyInternal(Operation operation, OperationFilterContext context) in /home/travis/build/micro-elements/MicroElements.Swashbuckle.FluentValidation/src/MicroElements.Swashbuckle.FluentValidation/FluentValidationOperationFilter.cs:line 91
warn: MicroElements.Swashbuckle.FluentValidation.FluentValidationRules[0]
Error on apply rule 'NotEmpty' for key 'File'.
System.NullReferenceException: Object reference not set to an instance of an object.
at MicroElements.Swashbuckle.FluentValidation.FluentValidationRules.<>c.b__6_3(RuleContext context) in /home/travis/build/micro-elements/MicroElements.Swashbuckle.FluentValidation/src/MicroElements.Swashbuckle.FluentValidation/FluentValidationRules.cs:line 141
at MicroElements.Swashbuckle.FluentValidation.FluentValidationOperationFilter.ApplyInternal(Operation operation, OperationFilterContext context) in /home/travis/build/micro-elements/MicroElements.Swashbuckle.FluentValidation/src/MicroElements.Swashbuckle.FluentValidation/FluentValidationOperationFilter.cs:line 91
warn: MicroElements.Swashbuckle.FluentValidation.FluentValidationRules[0]
Error on apply rule 'NotEmpty' for key 'File'.
System.NullReferenceException: Object reference not set to an instance of an object.
at MicroElements.Swashbuckle.FluentValidation.FluentValidationRules.<>c.b__6_3(RuleContext context) in /home/travis/build/micro-elements/MicroElements.Swashbuckle.FluentValidation/src/MicroElements.Swashbuckle.FluentValidation/FluentValidationRules.cs:line 141
at MicroElements.Swashbuckle.FluentValidation.FluentValidationOperationFilter.ApplyInternal(Operation operation, OperationFilterContext context) in /home/travis/build/micro-elements/MicroElements.Swashbuckle.FluentValidation/src/MicroElements.Swashbuckle.FluentValidation/FluentValidationOperationFilter.cs:line 91
warn: MicroElements.Swashbuckle.FluentValidation.FluentValidationRules[0]
Error on apply rule 'Length' for key 'Name'.
System.NullReferenceException: Object reference not set to an instance of an object.
at MicroElements.Swashbuckle.FluentValidation.FluentValidationRules.<>c.b__6_5(RuleContext context) in /home/travis/build/micro-elements/MicroElements.Swashbuckle.FluentValidation/src/MicroElements.Swashbuckle.FluentValidation/FluentValidationRules.cs:line 150
at MicroElements.Swashbuckle.FluentValidation.FluentValidationOperationFilter.ApplyInternal(Operation operation, OperationFilterContext context) in /home/travis/build/micro-elements/MicroElements.Swashbuckle.FluentValidation/src/MicroElements.Swashbuckle.FluentValidation/FluentValidationOperationFilter.cs:line 91
warn: MicroElements.Swashbuckle.FluentValidation.FluentValidationRules[0]
Error on apply rule 'Length' for key 'Name'.
System.NullReferenceException: Object reference not set to an instance of an object.
at MicroElements.Swashbuckle.FluentValidation.FluentValidationRules.<>c.b__6_5(RuleContext context) in /home/travis/build/micro-elements/MicroElements.Swashbuckle.FluentValidation/src/MicroElements.Swashbuckle.FluentValidation/FluentValidationRules.cs:line 150
at MicroElements.Swashbuckle.FluentValidation.FluentValidationOperationFilter.ApplyInternal(Operation operation, OperationFilterContext context) in /home/travis/build/micro-elements/MicroElements.Swashbuckle.FluentValidation/src/MicroElements.Swashbuckle.FluentValidation/FluentValidationOperationFilter.cs:line 91
My request object:
public class CreateImageRequest
{
public IFormFile File { get; set; }
public string Name { get; set; }
}validator:
public class CreateImageRequestValidator : AbstractValidator<CreateImageRequest>
{
public CreateImageRequestValidator()
{
RuleFor(_ => _.File).NotEmpty().WithErrorCode(ErrorCode.MustNotBeEmpty.ToString());
RuleFor(_ => _.File).Must((request, ct) =>
{
if ((request?.File?.ContentType == @"image/jpeg") || (request?.File?.ContentType == @"image/png"))
{
return true;
}
return false;
}).WithMessage("Invalid content type").WithErrorCode(ErrorCode.ExpectationNotMet.ToString());
RuleFor(_ => _.Name).Length(0, 250).WithErrorCode(ErrorCode.IncorrectLength.ToString());
}
}Controller method;
public async Task<IActionResult> CreateProfileImage([FromForm]CreateImageRequest request)
{
...
}Parameters in swagger docs: (somehow it's labeled as query parameter and no required tags..)
(edited: added validator class)
