Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro resolvido: ações conflitantes

Bom dia. Abri esse fórum pra ajudar quem está tendo o seguinte erro e está usando .NET 5 (não sei se funciona pra outras versões):

Erro:

Swashbuckle.AspNetCore.SwaggerGen.SwaggerGeneratorException: Conflicting method/path combination "GET api/v{version}/Livros" for actions - Alura.ListaLeitura.Api.Controllers.Livros2Controller.ListaDeLivros (Alura.WebAPI.Api),Alura.ListaLeitura.Api.Controllers.LivrosController.ListaDeLivros (Alura.WebAPI.Api). Actions require a unique method/path combination for Swagger/OpenAPI 3.0. Use ConflictingActionsResolver as a workaround
   at Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator.GenerateOperations(IEnumerable`1 apiDescriptions, SchemaRepository schemaRepository)
   at Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator.GeneratePaths(IEnumerable`1 apiDescriptions, SchemaRepository schemaRepository)
   at Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator.GetSwagger(String documentName, String host, String basePath)
   at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
   at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

No AddSwaggerGen no método ConfigureService adicione o seguinte:

services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new OpenApiInfo { Title = "AluraWebAPI", Version = "v1" });
                //Esse codigo foi adicionado para resolver ações conflitantes que é quando ações estão
                //usando a mesma rota
                c.ResolveConflictingActions(x => x.First());
            });

c.ResolveConflictingActions(x => x.First()); -> Essa linha resolve o conflito de ações que estão usando a mesma rota e gerando ambiguidade. Comigo funcionou.

OBS: Achei a solução aqui: https://www.thecodebuzz.com/resolved-failed-to-load-api-definition-undefined-swagger-v1-swagger-json/ . Link que aliás mostra outras soluções possíveis caso essa não funcione.

Bons estudos.

1 resposta
solução!
Solucionado como acima

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software