Упражнение. Создание проекта веб-API
В этом модуле используется пакет SDK для .NET 8.0. Убедитесь, что установлен .NET 8.0, выполнив следующую команду в предпочтительном терминале команд:
dotnet --list-sdks
Выходные данные, аналогичные следующему примеру, отображаются:
6.0.317 [C:\Program Files\dotnet\sdk]
7.0.401 [C:\Program Files\dotnet\sdk]
8.0.100 [C:\Program Files\dotnet\sdk]
Убедитесь, что в списке есть версия, которая начинается с цифры 8
. Если нет списка или команда не найдена, установите последний пакет SDK для .NET 8.0.
Создание и изучение проекта веб-API
Чтобы настроить проект .NET для работы с веб-API, мы используем Visual Studio Code. Visual Studio Code содержит встроенный терминал, который упрощает создание проектов. Если вы не хотите использовать редактор кода, вы можете выполнять команды из этого модуля в терминале.
В Visual Studio Code выберите пункты меню Файл>Открыть папку.
Создайте папку с именем ContosoPizza в выбранном расположении, а затем выберите " Выбрать папку".
Откройте интегрированный терминал Visual Studio Code, выбрав Вид>Терминал в главном меню.
Скопируйте и вставьте следующую команду в окно терминала:
dotnet new webapi -controllers -f net8.0
Эта команда создает файлы для базового проекта веб-API, использующего контроллеры, а также файл проекта C# с именем ContosoPizza.csproj , который возвращает список прогнозов погоды. Если вы получите ошибку, убедитесь, что установлен пакет SDK для .NET 8.
Внимание
Проекты веб-API по умолчанию защищены протоколом
https
. При возникновении проблем настройте сертификат разработки ASP.NET Core HTTPS.Вы можете получить запрос от Visual Studio Code на добавление ресурсов для отладки проекта. Нажмите Да в диалоговом окне.
Эта команда использует псевдоним шаблона проекта ASP.NET Core для webapi формирования шаблонов веб-API на основе C#. Создается каталог ContosoPizza. Этот каталог содержит проект ASP.NET Core, который выполняется на платформе .NET. Имя проекта соответствует имени каталога ContosoPizza.
Теперь у вас должен быть доступ к этим файлам и каталогам:
-| Controllers -| obj -| Properties -| appsettings.Development.json -| appsettings.json -| ContosoPizza.csproj -| ContosoPizza.http -| Program.cs -| WeatherForecast.cs
Просмотрите следующие файлы и каталоги:
Имя Описание Controllers/ Содержит классы для открытых методов, предоставляемых как конечные точки HTTP. Program.cs Настраивает службы и конвейер HTTP-запроса приложения и содержит управляемую точку входа приложения. ContosoPizza.csproj Содержит метаданные конфигурации для проекта. ContosoPizza.http Содержит конфигурацию для тестирования ИНТЕРФЕЙСов REST API непосредственно из Visual Studio Code.
Создание и тестирование веб-API
Выполните следующую команду интерфейса командной строки .NET Core в командной оболочке:
dotnet run
Предыдущая команда:
- находит файл проекта в текущем каталоге;
- получает и устанавливает необходимые зависимости для этого проекта;
- компилирует код проекта;
- Размещает веб-API на веб-сервере Kestrel ASP.NET Core с конечными точками HTTP и HTTPS.
Порт от 5000 до 5300 выбирается для HTTP, а при создании проекта — от 7000 до 7300. Используемые на этапе разработки порты можно легко изменить в файле launchSettings.json проекта. Этот модуль использует безопасный URL-адрес
localhost
с префиксомhttps
.Вы должны получить выходные данные, аналогичные следующему, указывая, что приложение работает:
Building... info: Microsoft.Hosting.Lifetime[14] Now listening on: https://localhost:7294 info: Microsoft.Hosting.Lifetime[14] Now listening on: http://localhost:5118 info: Microsoft.Hosting.Lifetime[0] Application started. Press Ctrl+C to shut down. info: Microsoft.Hosting.Lifetime[0] Hosting environment: Development
Если вы запускаете это приложение на своем компьютере, вы можете направить браузер на ссылку HTTPS, отображаемую в выходных данных (в предыдущем случае),
https://localhost:7294
чтобы просмотреть полученную страницу. Помните этот порт, так как он используется во всем модуле, где{PORT}
используется.Внимание
При возникновении непредвиденного поведения просмотрите вывод терминала. Если сборка завершается с ошибкой или возникают другие проблемы, сведения из файла журнала помогут устранить неполадки. Для внесения в код изменений нужно остановить веб-API, нажав сочетание клавиш CTRL+C на клавиатуре и заново выполнив команду
dotnet run
.Откройте браузер и перейдите по адресу:
https://localhost:{PORT}/weatherforecast
Вы должны увидеть выходные данные JSON, аналогичные этому примеру:
[ { "date": "2021-11-09T20:36:01.4678814+00:00", "temperatureC": 33, "temperatureF": 91, "summary": "Scorching" }, { "date": "2021-11-09T20:36:01.4682337+00:00", "temperatureC": -8, "temperatureF": 18, "summary": "Cool" }, // ... ]
Необязательно. Изучение файлов .http
В проект входит contosoPizza.http, файл, используемый для тестирования конечных точек API с помощью стандартного формата. .http
файлы поддерживаются в нескольких интегрированных средах разработки (IDEs), включая Visual Studio и внутри Visual Studio Code с установленным расширением клиента REST.
Откройте файл ContosoPizza.http.
В некоторых идентификаторах этот файл предварительно настроен с помощью переменных @ContosoPizza_HostAddress и команды GET с вызовом /weatherforecast/ , которая принимает приложение/json.
Если он присутствует в файле, выберите команду Send Request над GET , которая отправляет запрос в запущенную службу.
При вызове этой команды откроется окно ответа с выходными данными, похожими на то, что мы видели в браузере:
HTTP/1.1 200 OK Connection: close Content-Type: application/json; charset=utf-8 Date: Wed, 17 Jan 2024 16:46:40 GMT Server: Kestrel Transfer-Encoding: chunked [ { "date": "2024-01-18", "temperatureC": -2, "temperatureF": 29, "summary": "Warm" }, { "date": "2024-01-19", "temperatureC": 24, "temperatureF": 75, "summary": "Chilly" }, // .. ]
Необязательно. Изучение API с помощью HTTP REPL командной строки
Откройте новый интегрированный терминал из Visual Studio Code, выбрав терминал>"Новый терминал" в главном меню, а затем выполните следующую команду:
dotnet tool install -g Microsoft.dotnet-httprepl
Предыдущая команда устанавливает средство командной строки .NET REPL HTTP, используемое для выполнения HTTP-запросов к веб-API.
Чтобы подключиться к веб-API, выполните следующую команду:
httprepl https://localhost:{PORT}
Также можно выполнить следующую команду в любое время, пока выполняется
HttpRepl
:connect https://localhost:{PORT}
Совет
Если средство
HttpRepl
выдает предупреждение Не удается найти описание OpenAPI, скорее всего, это ненадежный сертификат разработки. ДляHttpRepl
необходимо доверительное соединение. Прежде чем продолжить, необходимонастроить систему для доверия сертификату разработки с помощьюdotnet dev-certs https --trust
Просмотрите доступные конечные точки, выполнив следующую команду:
ls
Предыдущая команда обнаруживает все API, доступные в подключенной конечной точке, и перечисляет их, как показано в следующих выходных данных:
https://localhost:{PORT}/> ls . [] WeatherForecast [GET]
Перейдите к конечной точке
WeatherForecast
, выполнив следующую команду:cd WeatherForecast
Предыдущая команда отображает выходные данные со списком доступных API для конечной точки
WeatherForecast
:https://localhost:{PORT}/> cd WeatherForecast /WeatherForecast [GET]
Выполните запрос
GET
вHttpRepl
с помощью следующей команды:get
Предыдущая команда выполняет такой же запрос
GET
, как и браузер при переходе к конечной точке:HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 Date: Fri, 02 Apr 2021 17:31:43 GMT Server: Kestrel Transfer-Encoding: chunked [ { "date": 4/3/2021 10:31:44 AM, "temperatureC": 13, "temperatureF": 55, "summary": "Sweltering" }, { "date": 4/4/2021 10:31:44 AM, "temperatureC": -13, "temperatureF": 9, "summary": "Warm" }, // .. ]
Завершите текущий сеанс
HttpRepl
с помощью следующей команды:exit
Вернитесь в терминал
dotnet
через раскрывающийся список в Visual Studio Code. Завершите работу веб-API, нажав сочетание клавиш CTRL+C на клавиатуре.
Теперь, когда вы создали веб-API, мы можем изменить его в соответствии с потребностями веб-API пиццы.