Polianin Nikita
c06ed8b479
All checks were successful
.NET Test Pipeline / build-and-test (pull_request) Successful in 1m33s
36 lines
1.4 KiB
C#
36 lines
1.4 KiB
C#
using Microsoft.AspNetCore.Mvc.ApiExplorer;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Options;
|
|
using Microsoft.OpenApi.Models;
|
|
using Swashbuckle.AspNetCore.SwaggerGen;
|
|
using System;
|
|
|
|
namespace Mirea.Api.Endpoint.Configuration.Swagger;
|
|
|
|
public class ConfigureSwaggerOptions(IApiVersionDescriptionProvider provider) : IConfigureOptions<SwaggerGenOptions>
|
|
{
|
|
public void Configure(SwaggerGenOptions options)
|
|
{
|
|
foreach (var description in provider.ApiVersionDescriptions)
|
|
{
|
|
options.SwaggerDoc(description.GroupName, CreateInfoForApiVersion(description));
|
|
}
|
|
}
|
|
|
|
private static OpenApiInfo CreateInfoForApiVersion(ApiVersionDescription description)
|
|
{
|
|
var info = new OpenApiInfo()
|
|
{
|
|
Title = "MIREA Schedule Web API",
|
|
Version = description.ApiVersion.ToString(),
|
|
Description = "This API provides a convenient interface for retrieving data stored in the database. Special attention was paid to the lightweight and easy transfer of all necessary data. Made by the Winsomnia team.",
|
|
Contact = new OpenApiContact { Name = "Author name", Email = "support@winsomnia.net" },
|
|
License = new OpenApiLicense { Name = "MIT", Url = new Uri("https://opensource.org/licenses/MIT") }
|
|
};
|
|
|
|
if (description.IsDeprecated)
|
|
info.Description += " This API version has been deprecated.";
|
|
|
|
return info;
|
|
}
|
|
} |