Files
criminalmindsapi/server/SwaggerOptions/ConfigureSwaggerOptions.cs
T

46 lines
1.4 KiB
C#
Raw Normal View History

2022-06-20 23:09:47 -05:00
using Microsoft.AspNetCore.Mvc.ApiExplorer;
using Microsoft.Extensions.Options;
using Microsoft.OpenApi.Models;
using Swashbuckle.AspNetCore.SwaggerGen;
2022-06-24 11:35:33 -05:00
namespace server.SwaggerOptions
2022-06-20 23:09:47 -05:00
{
public class ConfigureSwaggerOptions : IConfigureOptions<SwaggerGenOptions>
{
private readonly IApiVersionDescriptionProvider _provider;
public ConfigureSwaggerOptions(IApiVersionDescriptionProvider provider)
{
_provider = provider;
}
public void Configure(SwaggerGenOptions options)
{
foreach (var description in _provider.ApiVersionDescriptions)
{
var versionInfo = CreateVersionInfo(description);
options.SwaggerDoc(description.GroupName, versionInfo);
}
}
private static OpenApiInfo CreateVersionInfo(ApiVersionDescription description)
2022-06-20 23:09:47 -05:00
{
var info = new OpenApiInfo
{
Title = "criminalmindsapi",
Version = description.ApiVersion.ToString(),
Description = "An api that provides information about the Criminal Minds series.",
Contact = new OpenApiContact
{
Name = "Stevan Freeborn",
Email = "stevan.freeborn@gmail.com",
Url = new Uri("https://stevanfreeborn.com")
}
2022-06-20 23:09:47 -05:00
};
return info;
}
}
}