Упражнение. Использование встроенного ПО промежуточного слоя
ASP.NET Core включает набор встроенных компонентов ПО промежуточного слоя, которые обрабатывают распространенные задачи, такие как маршрутизация, проверка подлинности и ведение журнала HTTP. Эти компоненты можно использовать для добавления функциональных возможностей в приложение без написания пользовательского ПО промежуточного слоя.
Ваша команда поручила вам создать веб-сайт barebones для вашей компании. Веб-сайт должен отобразить приветственное сообщение на главной странице и отобразить краткую историю компании на отдельной /about странице. Предыдущая версия приложения имела журнал компании по /history URL-адресу, поэтому вам нужно перенаправить запросы на /history/about поддержание совместимости с существующими ссылками.
Для выполнения этих задач вы будете использовать встроенный MapGet метод и UrlRewriter ПО промежуточного слоя.
Создание приложения ASP.NET Core
Вам потребуется приложение ASP.NET Core, чтобы играть роль приложения вашей команды. Давайте создадим новое приложение ASP.NET Core с помощью расширения набора средств разработки на C# в Visual Studio Code.
Запустите Visual Studio Code.
Нажмите клавиши CTRL+SHIFT+P , чтобы открыть палитру команд.
Найдите и выберите .NET: Создать проект....
Найдите и выберите ASP.NET Core Empty.
Выберите или создайте папку для нового проекта.
Назовите новое приложение MyWebApp.
Выберите Создать проект, и проект будет создан.
Когда откроется новый проект, разверните
Solution Explorerпанель для просмотра файлов проекта.
Выполнить приложение
Протестируйте приложение, чтобы убедиться, что он выполняется.
В Visual Studio Code нажмите клавишу F5 , чтобы создать и запустить приложение.
- При появлении запроса выберите C# в качестве отладчика.
- При появлении запроса выберите C#: MyWebApp [Конфигурация по умолчанию] в качестве используемой конфигурации запуска.
Эта команда запускает приложение и размещает его на локальном веб-сервере. Откроется окно браузера и отображается сообщение "Hello, World!"
Закройте окно браузера и остановите приложение, нажав клавиши SHIFT+F5 в Visual Studio Code.
Сопоставление конечных точек и добавление средства перезаписи URL-адресов
Теперь, когда у вас есть рабочее приложение, давайте добавим приветственное сообщение на главную страницу.
Откройте файл Program.cs.
В строке измените
app.MapGet("/", () => "Hello World!");сообщение "Hello World!" на "Добро пожаловать в Contoso!"app.MapGet("/", () => "Welcome to Contoso!");app.MapGet()сопоставляет HTTP-запрос GET с указанным путем. Эта функция ASP.NET Core называется маршрутизацией конечных точек. Этот код добавляет в конвейер ветвь. Если путь запроса равен/, ПО промежуточного слоя маршрутизации конечных точек направляет запрос в эту конечную точку, которая затем записывает сообщение "Добро пожаловать в Contoso!" в ответ.В следующей строке добавьте следующий код:
app.MapGet("/about", () => "Contoso was founded in 2000.");Этот код добавляет другую конечную точку. Если путь запроса равен
/about, конечная точка записывает сообщение "Наша компания была основана в 2000 году".Перед первым
app.MapGet()добавьте следующий код:app.UseRewriter(new RewriteOptions().AddRedirect("history", "about"));Этот код добавляет компонент по промежуточного слоя перезаписи URL-адресов, который перенаправляет запросы из
/history/about. МетодAddRedirect()принимает два параметра: шаблон регулярного выражения для сопоставления пути запроса и путь замены для перенаправления.Добавьте следующую директиву в начало файла.
using Microsoft.AspNetCore.Rewrite;Эта директива разрешает ссылку на
RewriteOptionsкласс.
Тестирование изменений
- Сохраните все изменения и запустите приложение, как и раньше.
- Когда откроется окно браузера, обратите внимание, что корневой URL-адрес отображает сообщение "Добро пожаловать в Contoso!" Добавьте
/aboutв URL-адрес и нажмите клавишу ВВОД. В браузере должно отобразиться сообщение "Компания Contoso была основана в 2000 году". - Замените
/aboutURL-адресом/historyи нажмите клавишу ВВОД. Браузер должен перенаправляться в/about. - Оставьте приложение запущенным для следующего упражнения.