Este artigo é parte da série:
Quando você cria a Web API a partir do Visual Studio, tudo funciona perfeitamente no ambiente de desenvolvimento, mas quando a aplicação é publicada em um servidor com acesso público à Internet o Swagger não funciona mais. Isso é muito simples de resolver. Observe esse trecho de código em “Program.cs”, gerado automaticamente pelo Visual Studio que serve para instanciar o Swagger:
var app = builder.Build(); // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); }
O que ele faz é simplesmente checar se o ambiente atual é de desenvolvimento, e apenas nesta condição o Swagger é instanciado. Para resolver o problema basta remover esse if. No exemplo abaixo, eu deixei o código que queremos eliminar todo comentado e disparei a instância do Swagger no fluxo normal do programa.
var app = builder.Build(); // Configure the HTTP request pipeline. /*if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); } */ app.UseSwagger(); app.UseSwaggerUI();
Você pode remover todo o código comentado, caso queira deixar o Swagger sempre disponível no ambiente de produção.
var app = builder.Build(); app.UseSwagger(); app.UseSwaggerUI();
Próxima etapa: