Я реализовал API и интегрировал его с Swagger .
Запуск ConfigureServices :
services
.AddMvcCore()
.AddApiExplorer();
services.AddSwaggerGen(c => {
c.SwaggerDoc("v1", new Info {
Title = "API", Version = "v1"
});
});
Запуск Настройка
app.UseSwagger(c => {
c.RouteTemplate = "{documentName}/configuration.json";
});
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/v1/configuration.json", "API");
c.RoutePrefix = "v1/docs";
})
Контроллер
[Route("v1/[controller]")]
[ApiController]
public class SomeController : ControllerBase {}
Пока все хорошо ...
Работает как шарм. Однако мое обновление до последней [Microsoft.AspNetCore.Mvc.Versioning.ApiExplorer][2]
не
Я следовал как за примерами , так и за документацией , но я не могу показать свои операции ... Что мне здесь не хватает?
Запуск Настройка служб
services
.AddMvcCore()
//.AddApiExplorer()
.AddVersionedApiExplorer( o => o.GroupNameFormat = "'v'VVV" );
services.AddApiVersioning(o => o.ReportApiVersions = true);
services.AddSwaggerGen(c => {
// c.SwaggerDoc("v1", new Info {
// Title = "API", Version = "v1"
// });
foreach (var description in provider.ApiVersionDescriptions)
{
c.SwaggerDoc(
description.GroupName,
new Info()
{
Title = $"API",
Version = description.ApiVersion.ToString()
});
}
c.OperationFilter<SwaggerDefaultValues>();
});
* SwaggerDefaultValues.cs
Запуск Настройка
app.UseSwagger(c => {
c.RouteTemplate = "{documentName}/configuration.json";
});
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/v1/configuration.json", "API");
c.RoutePrefix = "v1/docs";
foreach (var description in apiProvider.ApiVersionDescriptions)
{
c.SwaggerEndpoint($"/{description.GroupName}/configuration.json", description.GroupName.ToUpperInvariant());
}
})
Контроллер
//[Route("v1/[controller]")]
[ApiController]
[Route("v{version:apiVersion}/[controller]")]
[ApiVersion("1.0")]
public class SomeController : ControllerBase {}