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 a OpenAPI e, em seguida, 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 do Azure gratuita 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 API Web na caixa de pesquisa.
- Selecione o modelo da API Web do ASP.NET Core e Avançar.
- Na caixa de diálogo Configurar o novo projeto, nomeie o projeto WeatherAPI e selecione Avançar.
- Na caixa de diálogo Informações adicionais:
- Confirme se o Framework é o .NET 6.0 (suporte de longo prazo).
- Confirme se a caixa de seleção para Usar controladores (desmarcar para usar APIs mínimas) está marcada.
- Confirme se a caixa de seleção Habilitar suporte a OpenAPI está marcada.
- Selecione Criar.
Explore o código
As definições do Swagger permitem que Gerenciamento de API do Azure leiam as definições de API do aplicativo. Ao marcar a caixa de seleção Habilitar suporte ao OpenAPI durante a criação do aplicativo, o Visual Studio adiciona automaticamente o código para criar as definições do Swagger. Abra o arquivo Program.cs
que exibe 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, tire app.UseSwagger();
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 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 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 ASP.NET Core no Gerenciamento de API do Azure:
No Gerenciador de Soluções, clique com o botão direito do mouse no nome do 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 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 Recursos e Plano do Serviço de Aplicativo serão populados. 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 serviço de Gerenciamento de API.
A caixa de diálogo Criar Serviço de Gerenciamento de API será exibida. Não é necessário alterar os campos de entrada Nome da API, Nome da Assinatura e Grupo de Recursos. 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 prosseguir com a criação do serviço de Gerenciamento de API. Esse passo pode levar vários minutos para ser concluído.
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. Clique no botão Publicar.
A API Web publica 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 criada na seção anterior. Agora ela está preenchida e você pode explorar.
Configurar o nome da API publicada
Observe que o nome da API é WeatherAPI; no entanto, gostaríamos de chamá-lo de Previsões meteorológicas. Conclua as etapas a seguir para atualizar o nome:
Adicione o seguinte a
Program.cs
logo apósservies.AddSwaggerGen();
builder.Services.ConfigureSwaggerGen(setup => { setup.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo { Title = "Weather Forecasts", Version = "v1" }); });
Publique novamente 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. Você verá que o nome da API agora 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.
Limpeza
Quando você concluir o teste do aplicativo, acesse o portal do Azure e exclua o aplicativo.
Selecione Grupos de recursos e, em seguida, selecione o grupo de recursos criado.
Na página Grupos de recursos, selecione Excluir.
Insira o nome do grupo de recursos e selecione Excluir. O aplicativo e todos os outros recursos criados neste tutorial agora foram excluídos do Azure.