Exercício – Usar middleware interno
O ASP.NET Core inclui um conjunto de componentes de middleware que lidam com tarefas comuns, como roteamento, autenticação e registro HTTP. Você pode usar esses componentes para adicionar funcionalidade ao seu aplicativo sem escrever middleware personalizado.
Seu líder de equipe solicitou que você crie um site de funções básicas para sua empresa. O site deve exibir uma mensagem de boas-vindas na página principal e exibir um breve histórico da empresa em uma página /about separada. Uma versão anterior do aplicativo tinha o histórico da empresa no URL /history, portanto, você precisa redirecionar solicitações de /history para /about para manter a compatibilidade com links existentes.
Você usará o método MapGet interno e o middleware UrlRewriter para realizar essas tarefas.
Criar um aplicativo ASP.NET Core
Você precisa de um aplicativo ASP.NET Core para desempenhar o papel do aplicativo da sua equipe. Vamos criar um novo aplicativo ASP.NET Core usando a extensão Kit de Desenvolvimento em C# no Visual Studio Code.
Inicie o Visual Studio Code.
Pressione Ctrl+Shift+P para abrir a paleta de comandos.
Pesquise e selecione .NET: Novo Projeto....
Pesquise e selecione ASP.NET Núcleo Vazio.
Selecione ou crie uma pasta para o novo projeto.
Nomeie o novo aplicativo MyWebApp.
Selecione Criar projeto para criar o projeto.
Quando o novo projeto for aberto, expanda o painel
Solution Explorerpara exibir os arquivo do projeto.
Executar o aplicativo
Teste o aplicativo para garantir que ele seja executado.
No Visual Studio Code, pressione F5 para compilar e executar o aplicativo.
- Quando solicitado, selecione C# como o depurador.
- Quando solicitado, selecione C#: MyWebApp [Configuração Padrão] como a configuração de inicialização a ser usada.
Esse comando inicia o aplicativo e o hospeda em um servidor Web local. Uma janela do navegador é aberta e exibe, “Olá, Mundo!”
Feche a janela do navegador e interrompa o aplicativo pressionando Shift+F5 no Visual Studio Code.
Mapear pontos de extremidade e adicionar um regravador de URL
Agora que você tem um aplicativo funcional, vamos adicionar uma mensagem de boas-vindas à página principal.
Abra o arquivo Program.cs .
Na linha
app.MapGet("/", () => "Hello World!");, altere a mensagem “Olá, Mundo!” para “Bem-vindo à Contoso!”app.MapGet("/", () => "Welcome to Contoso!");app.MapGet()mapeia uma solicitação HTTP GET para um caminho especificado. Esse recurso do ASP.NET Core é chamado roteamento de endpoint. Esse código adiciona um branch ao pipeline. Se o caminho de solicitação for/, o middleware de roteamento de ponto de extremidade irá rotear a solicitação para esse ponto de extremidade, que grava “Bem-vindo à Contoso!” na resposta.Na próxima linha, adicione o código a seguir:
app.MapGet("/about", () => "Contoso was founded in 2000.");Esse código adiciona outro ponto de extremidade. Se o caminho de solicitação for
/about, o ponto de extremidade gravará “Nossa empresa foi fundada em 2000.” na resposta.Antes do primeiro
app.MapGet(), adicione o seguinte código:app.UseRewriter(new RewriteOptions().AddRedirect("history", "about"));Esse código adiciona um componente de middleware de regravador de URL que redireciona solicitações de
/historypara/about. O métodoAddRedirect()usa dois parâmetros: um padrão de expressão regular para corresponder ao caminho da solicitação e o caminho de substituição para o qual redirecionar.Adicione a seguinte diretiva para a parte superior do arquivo:
using Microsoft.AspNetCore.Rewrite;Essa diretiva resolve a referência à classe
RewriteOptions.
Teste as mudanças
- Salve todas as alterações e execute o aplicativo como antes.
- Quando a janela do navegador for aberta, observe que a URL raiz exibe "Bem-vindo à Contoso!" Adicione
/aboutà URL e pressione Enter. O navegador deve exibir “A Contoso foi fundada em 2000.” - Substitua
/aboutna URL e pressione/history. O navegador deve redirecionar para/about. - Deixe o aplicativo em execução para o próximo exercício.