Publicar uma API Web do ASP.NET Core no Gerenciamento de API do Azure com o Visual Studio
Por Matt Soucoup
Neste tutorial, você aprenderá a criar um projeto de API Web do ASP.NET Core usando o Visual Studio, garantir que ele tenha suporte ao OpenAPI e publicar a API Web no Serviço de Aplicativo do Azure e no Gerenciamento de API do Azure.
Configuração
Para concluir o tutorial, você precisará de uma conta do Azure.
- Abra uma conta gratuita no Azure se você não tiver uma.
Criar uma API Web do ASP.NET Core
O Visual Studio permite que você crie facilmente um novo projeto de API Web do ASP.NET Core a partir de um modelo. Siga estas instruções para criar um novo projeto de API Web do ASP.NET Core:
- No menu Arquivo, selecione Novo>Projeto.
- Insira "Web API" na caixa de pesquisa.
- Selecione o modelo API Web do ASP.NET Core e Avançar.
- No diálogo Configure seu novo projeto, nomeie o projeto como WeatherAPI e selecione Avançar.
- Na caixa de diálogo Informações adicionais:
- Confirme que o framework é .NET 6.0 (suporte de longo prazo).
- Confirme se a caixa de seleção Usar controladores (desmarque para utilizar APIs mínimas) está marcada.
- Confirme se a caixa de seleção Habilitar suporte a OpenAPI está marcada.
- Selecione Criar.
Explorar o código
As definições do Swagger permitem que o Gerenciamento de API do Azure leia as definições de API do aplicativo. Ao marcar a caixa de seleção Habilitar suporte OpenAPI durante a criação do aplicativo, o Visual Studio adiciona automaticamente o código às definições do Swagger. Abra o arquivo Program.cs
que mostra o seguinte código:
...
builder.Services.AddSwaggerGen();
...
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI(); // Protected by if (env.IsDevelopment())
}
...
Verifique se as definições do Swagger são sempre geradas
O Gerenciamento de API do Azure precisa que as definições do Swagger estejam sempre presentes, independentemente do ambiente do aplicativo. Para garantir que eles sejam sempre gerados, mova app.UseSwagger();
para fora do bloco if (app.Environment.IsDevelopment())
.
O código atualizado:
...
app.UseSwagger();
if (app.Environment.IsDevelopment())
{
app.UseSwaggerUI();
}
...
Alterar o roteamento de API
Altere a estrutura de URL necessária para acessar a ação Get
do WeatherForecastController
. Conclua as seguintes etapas:
Abra o arquivo
WeatherForecastController.cs
.Substitua o atributo de nível de classe
[Route("[controller]")]
por[Route("/")]
. A definição de classe atualizada:[ApiController] [Route("/")] public class WeatherForecastController : ControllerBase
Publicar a API Web no Serviço de Aplicativo do Azure
Conclua as seguintes etapas para publicar a API Web do ASP.NET Core no Gerenciamento de API do Azure:
- Publique o aplicativo de API no Serviço de Aplicativo do Azure.
- Publique o aplicativo de API Web do ASP.NET Core na instância do serviço de Gerenciamento de API do Azure.
Publicar o aplicativo de API no Serviço de Aplicativo do Azure
Conclua as seguintes etapas para publicar a API Web do ASP.NET Core no Gerenciamento de API do Azure:
No Gerenciador de Soluções, clique com o botão direito do mouse no projeto e selecione Publicar.
Na caixa de diálogo Publicar, selecione Azure e selecione o botão Avançar.
Selecione Serviço de Aplicativo do Azure (Windows) e escolha o botão Avançar.
Selecione Criar um novo Serviço de Aplicativo do Azure.
A caixa de diálogo Criar Serviço de Aplicativo é exibida. Os campos de entrada Nome do Aplicativo, grupo de recursose Plano de Serviço de Aplicativo são preenchidos. Você pode manter esses nomes ou alterá-los.
Selecione o botão Criar.
Depois que o serviço de aplicativo for criado, selecione o botão Avançar.
Selecione Criar um novo Serviço de Gerenciamento de API.
A caixa de diálogo Criar Serviço de Gerenciamento de API é exibida. Você pode deixar os campos de entrada Nome da API, Nome da Assinaturae Grupo de Recursos como estão. Selecione o novo botão ao lado da entrada Serviço de Gerenciamento de API e insira os campos necessários nessa caixa de diálogo.
Selecione o botão OK para criar o serviço de Gerenciamento de API.
Selecione o botão Criar para continuar com a criação do serviço de Gerenciamento de API. Essa etapa pode levar vários minutos para ser concluída.
Quando for concluído, selecione o botão Concluir.
A caixa de diálogo é fechada e uma tela de resumo é exibida com informações sobre a publicação. Selecione o botão Publicar.
A API Web é publicada no Serviço de Aplicativo do Azure e no Gerenciamento de API do Azure. Uma nova janela do navegador será exibida e mostrará a API em execução no Serviço de Aplicativo do Azure. Você pode fechar essa janela.
Abra o portal do Azure em um navegador da Web e navegue até a instância de Gerenciamento de API que você criou.
Selecione a opção APIs no menu à esquerda.
Selecione a API que você criou nas etapas anteriores. Agora está populado e você pode explorar ao redor.
Configurar o nome da API publicada
Observe que o nome da API é WeatherAPI; no entanto, gostaríamos de chamá-la de Previsões Meteorológicas. Conclua as seguintes etapas para atualizar o nome:
Adicione o seguinte ao
Program.cs
imediatamente apósservices.AddSwaggerGen();
builder.Services.ConfigureSwaggerGen(setup => { setup.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo { Title = "Weather Forecasts", Version = "v1" }); });
Republice a API Web do ASP.NET Core e abra a instância de Gerenciamento de API do Azure no portal do Azure.
Atualize a página no navegador. Agora você verá que o nome da API está correto.
Verifique se a API Web está funcionando
Você pode testar a API Web do ASP.NET Core implantada no Gerenciamento de API do Azure no portal do Azure com as seguintes etapas:
- Abra a guia Testar.
- Selecione / ou a operação Get.
- Selecione Enviar.
Limpar
Quando você concluir o teste do aplicativo, acesse o portal do Azure e exclua o aplicativo.
Selecione Grupos de recursose selecione o grupo de recursos que você criou.
Na página Grupos de recursos, selecione Excluir.
Insira o nome do grupo de recursos e selecione Excluir. Seu aplicativo e todos os outros recursos criados neste tutorial agora são excluídos do Azure.