Facebook Pixel
Publicando REST API no Azure com Visual Studio, C# e .NET Core

Publicando REST API no Azure com Visual Studio, C# e .NET Core

Este artigo é parte da série:

Não vou explicar aqui as vantagens dos serviços Azure, para isso, acesse o portal do Azure. De qualquer forma, aconselho a criar uma conta lá. É gratuito e tem muitas funcionalidades que pode vir a ser útil, até mesmo para seus estudos.

1. No portal do Azure, vá em “Create a resource”.

2. Selecione o serviço “Web App”.

3. Entre com os dados da Web App.

  • Crie um novo “Resource Group” para essa atividade. Para fins deste exemplo, utilizei o nome “Treino-01”.
  • Em “Instance Details”, desative a função “Try a unique default hostname”. Se deixar ativado, o sistema irá criar um nome aleatório para sua aplicação. Desativando, você pode colocar seu próprio nome, desde que ele esteja disponível. Para este exemplo, utilizei o nome “informago-01”. Desta forma, a web app que está sendo criada será acessada pelo endereço: https://informago-01.azurewebsites.net.
  • Em “Runtime stack” selecione a versão do .NET Framework que utilizou para criar a aplicação, em noso exemplo, .NET 8.
  • Em “Pricing plan”, observe que a primeira opção é “Free F1”. Essa é a opção gratuita, mas ela não vem selecionada por padrão. Atente-se a isso para não ter surpresas depois com contas indesejadas.
  • Clique em “Review + create” para finalizar.
  • Clique em “Create” na tela final de confirmação.

4. Ao final do processo de criação clique em “Go to resource”.

5. Para testar se tudo está funcionando corretamente, acesse a web app pelo endereço especificado lá no item 3. Se tudo deu certo, você verá algo parecido com isso. Agora só falta enviar para lá a aplicação que acabamos de desenvolver.

6. De volta ao Portal do Azure, vá em “Resource groups” e então selecione o grupo que acabou de criar.

7. Selecione a aplicação que acabou de criar. No caso deste exemplo, “informago-t01”.

8. Selecione “Configuration” e então habilite “SCM Basic Auth Publishing Credentials” e “FPT Basic Auth Publishing Credentials”.

9. Agora volte para “Overview” e “Download publish profile”.

10. Se tudo deu certo, você terá baixado um arquivo com a extensão “.PublishSettings”.

11. Agora vamos voltar para o Visual Studio, no Solution Explorer, clique direito no nome do projeto e então “Publish”.

12. Selecione “Import Profile”.

13. Selecione o arquivo PublishSettings que acabou de baixar lá no site do Azure.

14. Se tudo deu certo, o perfil de publicação estará ativo. Observe que no caso deste exemplo, quando terminei de criar o perfil de publicação, houve algum problema com minhas credenciais e o sistema pediu para entrar novamente. Eu cliquei no link “Re-enter your credencials” e ficou tudo certo.

Daqui para frente, vai bastar clicar no botão “Publish” que todas as alterações que fizermos no programa serão enviadas automaticamente para o servidor na nuvem. O processo de publicação cuida de todas as rotinas de atualização dos componentes no servidor.

15. Como não há nenhuma página na pasta raiz, o site será publicado porém o conteúdo inicial estará indisponível.

16. Agora vamos voltar em “Program.cs”. Observe que o comando que libera o acesso ao Swagger só acontece se for identificado ambiente de desenvolvimento. Para ter o Swagger funcionando de qualquer forma, vamos retirar essa condicial.

17. Publique novamente, e agora o Swagger estará publicado na pasta /Swagger do domínio que você configurou lá no Azure. No meu caso: https://informago-t01.azurewebsites.net/Swagger.

18. Nesse momento, o diretório raiz da nossa API continua vazio, apresentando mensagem de erro caso se tente acessar o domínio diretamente. Para resolver isso, e deixar uma página HTML estática como sendo a index do site, é necessário criar uma pasta com o nome “wwwroot” no nível principal do projeto e então colocar o conteúdo HTML lá dentro. Nesse caso, vou colocar um arquivo “index.html” dentro de “wwwroot”, e acrescentar em “Program.cs” os comandos :

app.UseDefaultFiles(new DefaultFilesOptions
{
    DefaultFileNames = new
     List<string> { "index.html" }
}); 
app.UseStaticFiles();

19. Inseri um conteúdo bem simples em “index.html”:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Treino ASP.NET Core</title>
</head>
<body>
    <font face="verdana">
        <div align="center">
            <h1>Treino ASP.NET Core</h1>
        </div>
    </font>
</body>
</html>

20. E agora temos uma página apresentável para ser a home do domínio que acabamos de criar:

20. Dessa forma, nosso “Program.cs” ficou assim:

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.

builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

var app = builder.Build();

// Configure the HTTP request pipeline.
/*
if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}
*/
app.UseSwagger();
app.UseSwaggerUI();

app.UseHttpsRedirection();

app.UseAuthorization();

app.MapControllers();

app.UseDefaultFiles(new DefaultFilesOptions
{
    DefaultFileNames = new
     List<string> { "index.html" }
}); 
app.UseStaticFiles();

app.Run();

Deixe seu comentário