Я использую Asp. Net Core 3.1 для создания своего API. Я использую Swagger для создания документа для моего API. Я решил сделать группировку по моему документу чванства на основе контроллера. Поэтому я закончил так:
Запуск - ConfigureServices:
options.SwaggerDoc(
"LibraryOpenAPISpecificationCategories",
...
Запуск - настройка:
options.SwaggerEndpoint(
"/swagger/LibraryOpenAPISpecificationCategories/swagger.json",
"Library API (Categories)");
Контроллер:
[Route("api/categories")]
[ApiController]
[ApiExplorerSettings(GroupName = "LibraryOpenAPISpecificationCategories")]
public class CategoriesController : ControllerBase
До этого момента все работало нормально. Когда я добавил версии, документ Swagger перестал отображать методы в контроллере. Я пытался создать группировку внутри версии, чтобы в каждой версии были такие группы, как
V1 -> LibraryOpenAPISpecificationCategories
V1 -> LibraryOpenAPISpecificationItems
V2 -> LibraryOpenAPISpecificationCategories
V2 -> LibraryOpenAPISpecificationItems
Вот что я сделал,
Запуск - ConfigureServices:
services.AddVersionedApiExplorer(options =>
{
options.GroupNameFormat = "'v'VV";
});
services.AddApiVersioning(options =>
{
options.AssumeDefaultVersionWhenUnspecified = true;
options.DefaultApiVersion = new ApiVersion(1, 0);
options.ReportApiVersions = true;
});
var apiVersionDescriptionProvider =
services.BuildServiceProvider().GetService<IApiVersionDescriptionProvider>();
services.AddSwaggerGen(options =>
{
foreach (var description in apiVersionDescriptionProvider.ApiVersionDescriptions)
{
options.SwaggerDoc(
$"LibraryOpenAPISpecificationCategories{description.GroupName}",
...
Запуск - Сконфигурируйте:
app.UseSwaggerUI(options =>
{
foreach (var description in apiVersionDescriptionProvider.ApiVersionDescriptions)
{
options.SwaggerEndpoint(
$"/swagger/LibraryOpenAPISpecificationCategories{description.GroupName}/swagger.json",
$"Library API (Categories) {description.GroupName.ToUpperInvariant()}");
Контроллер:
[Route("api/categories")]
[ApiController]
[ApiExplorerSettings(GroupName = "LibraryOpenAPISpecificationCategories")]
public class CategoriesController : ControllerBase
Нет ошибок отображается в документе Swagger. Пожалуйста, помогите мне, где я иду не так. Я что-то упустил?