Как разделить Swagger API документы по версиям и группам в ядре asp.net - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть API, в котором есть отдельные документы для каждой версии.

В настоящее время в конфигурации проекта я перебираю список ApiVersionDescription и создаю отдельный документ на документы следующим образом:

var provider = services.BuildServiceProvider().GetRequiredService<IApiVersionDescriptionProvider>();

foreach (var desc in provider.ApiVersionDescriptions)
{
    options.SwaggerDoc(
    desc.GroupName,
    new Info()
    {
        Title = "API" + description.ApiVersion,
        Version = description.ApiVersion.ToString()
    });
}

foreach (var description in provider.ApiVersionDescriptions)
{        
   options.SwaggerEndpoint($"/swagger/{description.GroupName}/swagger.json", 
   description.GroupName.ToUpperInvariant());
}

Он создает документы v1, v2, v3 и т. Д. На основе атрибута «ApiVersion» для классов контроллеров

Я хотел бы разделить каждую версию, скажем, на 3 конечные точки, и для каждой конечной точки у нее будет отдельный документ.

В ситуации, когда API имеет версии v1 и v2, я хотел бы иметь такие документы, как:

  • Конечная точка V1 1
  • Конечная точка V1 2
  • Конечная точка V1 3
  • Конечная точка V2 1
  • Конечная точка V2 2
  • Конечная точка V2 3

Возможно ли это?

...