Exercício - Use middleware integrado
O ASP.NET Core inclui um conjunto de componentes de middleware internos que lidam com tarefas comuns, como roteamento, autenticação e registro em log HTTP. Você pode usar esses componentes para adicionar funcionalidade ao seu aplicativo sem escrever middleware personalizado.
O líder da sua equipa encarregou-o de criar um website simples para a 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 separada /about . Uma versão anterior do aplicativo tinha o histórico da empresa no /history URL, então você precisa redirecionar as solicitações de /history para /about para manter a compatibilidade com os links existentes.
Você usará o método interno MapGet e UrlRewriter o middleware para realizar essas tarefas.
Criar uma aplicação 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 C# Dev Kit no Visual Studio Code.
Abra o Visual Studio Code.
Pressione Ctrl+Shift+P para abrir a paleta de comandos.
Procure e selecione .NET: Novo Projeto....
Procure e selecione ASP.NET Core Empty.
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
Solution Explorerpainel para exibir os arquivos do projeto.
Executar a aplicação
Teste o aplicativo para garantir que ele seja executado.
No Visual Studio Code, pressione F5 para criar 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.
Este 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 pare o aplicativo pressionando Shift+F5 no Visual Studio Code.
Mapeie pontos de extremidade e adicione um reescritor de URL
Agora que você tem um aplicativo funcionando, vamos adicionar uma mensagem de boas-vindas à página principal.
Abra o arquivo Program.cs .
app.MapGet("/", () => "Hello World!");Na linha, altere a mensagem "Hello World!" 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 de roteamento de ponto final. Esse código adiciona uma ramificação ao pipeline. Se o caminho da solicitação for/, o middleware de roteamento de ponto de extremidade roteia a solicitação para esse ponto de extremidade, que então escreve "Bem-vindo à Contoso!" na resposta.Na próxima linha, adicione o seguinte código:
app.MapGet("/about", () => "Contoso was founded in 2000.");Este código adiciona outro ponto de extremidade. Se o caminho da solicitação for
/about, o endpoint escreve "Nossa empresa foi fundada em 2000." para a 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 ./aboutOAddRedirect()método 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 à parte superior do arquivo:
using Microsoft.AspNetCore.Rewrite;Esta diretiva resolve a referência à
RewriteOptionsclasse.
Testar as alterações
- Salve todas as suas alterações e execute o aplicativo como antes.
- Quando a janela do navegador abrir, observe que a URL raiz exibe "Bem-vindo à Contoso!" Adicione
/aboutao URL e pressione Enter. O navegador deve exibir "A Contoso foi fundada em 2000". - Substitua
/aboutpor/historyno URL e pressione Enter. O navegador deve redirecionar para/about. - Deixe o aplicativo em execução para o próximo exercício.