Member 11183217 Ответов: 1

Создайте версию пользовательского интерфейса swagger для контроллера и действия с помощью core 3.1


привет,

Я попробовал управление версиями пользовательского интерфейса swagger с помощью .net core 3.1 с API 2.0. я завершил этот сценарий до уровня контроллера. но я не знаю, как сделать это управление версиями для действий контроллера...кто-нибудь, пожалуйста, помогите мне в этом, я боролся последние 3 дня над этим. помоги мне решить эту проблему......

Что я уже пробовал:

public void ConfigureServices(IServiceCollection services)
        {

            services.AddMvc();           
            services.AddApiVersioning(o =>
            {
                o.AssumeDefaultVersionWhenUnspecified = true;
                o.DefaultApiVersion = new ApiVersion(3, 0);
            });
            // Add this
            services.AddSwaggerGen(options =>
            {
                options.SwaggerDoc("v1",
                    new OpenApiInfo
                    {
                        Version = "v1",
                        Title = "v1 API",
                        Description = "v1 API Description",
                    });

                // Add a SwaggerDoc for v2 
                options.SwaggerDoc("v2",
                    new OpenApiInfo
                    {
                        Version = "v2",
                        Title = "v2 API",
                        Description = "v2 API Description"                       
                    });
}


public void Configure(IApplicationBuilder app, IHostingEnvironment env)
       {

           app.UseSwagger();
           app.UseSwaggerUI(c =>
           {
               c.SwaggerEndpoint($"/swagger/v1/swagger.json", $"v1");
               c.SwaggerEndpoint($"/swagger/v2/swagger.json", $"v2");
               c.DefaultModelExpandDepth(0); // Hide Models section in swagger UI
               c.DefaultModelsExpandDepth(-1);
           });

}



[Route("api/v{version:ApiVersion}/[controller]")]
    [ApiController]
    [ApiVersion("1.0")]
    [ApiVersion("2.0")]
    public partial class xxxController : ControllerBase
    {

        private readonly IxxxDomainService _xxxService;
        private readonly IMapper _mapper;


        public xxxController(IxxxService studprofService, IMapper mapper)
        {
            this._mapper = mapper;
            this._xxxService = xxxService;
        }
        
        [ActionName("GetAll")]
        
        [HttpGet("{InstitutionProgAssocId}/{ProgApSpAssocId}")]
        public async Task<List<XXXDTO>> GetAllXXX(int XXXProgAssocId, int ProgApSpAssocId)
        {
            return await _XXXService.GetAllXXX(XXXAssocId, ProgApSpAssocId);
        }

Gerry Schmitz

Жизнь достаточно трудна на переднем крае без сторонних продуктов с претенциозными названиями.