у нас есть проект .net core 2.1 mvc webapi, который использует Swagger.мы используем следующие пакеты:
<PackageReference Include="Swashbuckle.AspNetCore" Version="3.0.0" />
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="3.0.0" />
<PackageReference Include="Swashbuckle.AspNetCore.Filters" Version="4.3.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.ApiExplorer" Version="2.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Versioning.ApiExplorer" Version="2.2.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="2.1.1" />
swashbuckle настроен следующим образом:
services.AddMvcCore().AddVersionedApiExplorer();
services.AddApiVersioning();
services.AddSwaggerGen();
все работает в такой настройке (/swagger/v1/swagger.json
имеет все операции и определения, и пользовательский интерфейс отображается правильно -> имея все контроллеры и действия и т. д.)
мы пытаемся перевести наш .net core проект с 2.1 на 2.2 .net core.
Для этого (без предупреждений) нам нужнообновить Microsoft.AspNetCore.Mvc.ApiExplorer
nuget с 2.1.2 до 2.2.0.
После этого обновления nuget swagger.json (/swagger/v1/swagger.json
) не содержит "paths": {}
и "definitions": {}
, что приводит к появлению свагерского интерфейса.без контроллеров / действий (отображается: No operations defined in spec!
после обновления пакета эти версии пакета обновляются:
<PackageReference Include="Microsoft.AspNetCore.Mvc.ApiExplorer" Version="2.2.0" /> //was 2.1.2
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="2.2.0" /> //was 2.1.1
Я пытался обновить версию Swashbuckle до v4.0.0, ноне удалось решить проблему.
Что мне не хватает, какие пакеты нужно обновить, чтобы swagger.json
генерировалось правильно при использовании пакета Microsoft.AspNetCore.Mvc.ApiExplorer 2.2.0
? Или я что-то упустил?