Skip to content

Swagger & Versioning

Mehdi Hadeli edited this page Apr 6, 2023 · 29 revisions

Articles

Samples

Notes

  • adding custom description to response status code possible with WithOpenApi() method Issue registered here:
endpoints.MapPost("/", CreateProducts)
.WithOpenApi(operation => new(operation)
{
	Summary = "Creating a New Product",
        Description = "Creating a New Product",
        operation.Responses[StatusCodes.Status401Unauthorized].Description = "UnAuthorized request.";
        operation.Responses[StatusCodes.Status400BadRequest].Description = "Invalid input for creating product.";
})
.RequireAuthorization()
 .Produces<CreateProductResponse>(StatusCodes.Status201Created)
 .Produces<StatusCodeProblemDetails>(StatusCodes.Status401Unauthorized)
 .Produces<StatusCodeProblemDetails>(StatusCodes.Status400BadRequest)
.WithName("CreateProduct")
.WithDisplayName("Create a new product.");

Swashbuckle.AspNetCore.Annotations package also support this functionality with following code:

 endpoints.MapPost("/", CreateProducts)
.WithOpenApi(operation => new(operation)
{
	Summary = "Creating a New Product", Description = "Creating a New Product"
})
.RequireAuthorization()
.WithName("CreateProduct")
.WithDisplayName("Create a new product.")
.WithMetadata(new SwaggerResponseAttribute(
	StatusCodes.Status401Unauthorized,
	"UnAuthorized request.",
	typeof(StatusCodeProblemDetails)))
.WithMetadata(new SwaggerResponseAttribute(
	StatusCodes.Status400BadRequest,
	"Invalid input for creating product.",
	typeof(StatusCodeProblemDetails)))
.WithMetadata(
	new SwaggerResponseAttribute(
		StatusCodes.Status201Created,
		"Product created successfully.",
		typeof(CreateProductResponse)));
Clone this wiki locally