-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Closed
Labels
Description
Describe the bug
I have this ApiDescriptionProvider
nternal class ImageSharpApiDescriptionProvider : IApiDescriptionProvider
{
public int Order => -1000;
public void OnProvidersExecuted(ApiDescriptionProviderContext context)
{
// nothing
}
public void OnProvidersExecuting(ApiDescriptionProviderContext context)
{
var apiDescriptionCatalog = new ApiDescription
{
HttpMethod = "GET",
ActionDescriptor = new ActionDescriptor
{
RouteValues = new Dictionary<string, string?>
{
// Swagger uses this to group endpoints together.
// Group methods together using the service name.
["controller"] = "Catalog",
},
DisplayName = "Get image",
},
RelativePath = "api/v1/Images/{image}",
GroupName = "v1",
};
AddMediaTypeAndParameters(apiDescriptionCatalog);
context.Results.Add(apiDescriptionCatalog);
}
private static void AddMediaTypeAndParameters(ApiDescription apiDescription)
{
apiDescription.SupportedRequestFormats.Add(new ApiRequestFormat { MediaType = "application/json" });
apiDescription.ParameterDescriptions.Add(
new ApiParameterDescription
{
Name = "image",
Source = BindingSource.Path,
DefaultValue = string.Empty,
}
);
apiDescription.ParameterDescriptions.Add(
new ApiParameterDescription
{
Name = "width",
Source = BindingSource.Query,
DefaultValue = string.Empty,
Type = typeof(int),
}
);
}
}This code does not work with the latest Version 7.3
When i remove the parameter which has BindingSource.Query --> no exception is thrown
Expected behavior
Exception is thrown:
Swashbuckle.AspNetCore.SwaggerGen.SwaggerGeneratorException: Failed to generate Operation for action - Get image. See inner exception
---> System.NullReferenceException: Object reference not set to an instance of an object.
at Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator.GetParameterStyle(Type type, BindingSource source)
at Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator.GenerateParameterWithoutFilter(ApiParameterDescription apiParameter, SchemaRepository schemaRepository)
at Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator.GenerateParameterAndContext(ApiParameterDescription apiParameter, SchemaRepository schemaRepository)
at Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator.GenerateParameterAsync(ApiParameterDescription apiParameter, SchemaRepository schemaRepository)
at Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator.GenerateParametersAsync(ApiDescription apiDescription, SchemaRepository schemaRespository, Func`3 parameterGenerator)
at Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator.GenerateParametersAsync(ApiDescription apiDescription, SchemaRepository schemaRespository)
at Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator.GenerateOperationAsync(ApiDescription apiDescription, SchemaRepository schemaRepository, Func`3 parametersGenerator, Func`3 bodyGenerator, Func`3 applyFilters)
--- End of inner exception stack trace ---
at Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator.GenerateOperationAsync(ApiDescription apiDescription, SchemaRepository schemaRepository, Func`3 parametersGenerator, Func`3 bodyGenerator, Func`3 applyFilters)
at Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator.GenerateOperationAsync(ApiDescription apiDescription, SchemaRepository schemaRepository)
at Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator.GenerateOperationsAsync(IEnumerable`1 apiDescriptions, SchemaRepository schemaRepository)
at Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator.GeneratePathsAsync(IEnumerable`1 apiDescriptions, SchemaRepository schemaRepository, Func`3 operationsGenerator)
at Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator.GeneratePathsAsync(IEnumerable`1 apiDescriptions, SchemaRepository schemaRepository)
at Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator.GetSwaggerAsync(String documentName, String host, String basePath)
at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|7_0(Endpoint endpoint, Task requestTask, ILogger logger)
Actual behavior
No Exception :)
Steps to reproduce
No response
Exception(s) (if any)
No response
Swashbuckle.AspNetCore version
No response
.NET Version
No response
Anything else?
No response
Reactions are currently unavailable