REST в ASP.Net Core
При переходе на веб-страницу веб-сервер взаимодействует с браузерами, используя технологии HTML, CSS и JavaScript. Например, если вы взаимодействуете со страницей, отправив форму входа или нажав кнопку покупки, браузер отправляет информацию обратно на веб-сервер.
Аналогичным образом, веб-серверы могут с помощью веб-служб взаимодействовать с широким спектром клиентов, включая браузеры, мобильные устройства, другие веб-серверы и многими другими. Клиенты API взаимодействуют с сервером по протоколу HTTP, а обмен данными осуществляют в определенном формате данных, например JSON или XML. Интерфейсы API часто используются в одностраничных приложениях для выполнения основной части логики пользовательского интерфейса. Связь с веб-сервером в основном происходит через веб-API.
REST — распространенный шаблон для создания API-интерфейсов с использованием HTTP
Передача репрезентативного состояния (REST) — это архитектурный стиль для создания веб-служб. Запросы REST выполняются по протоколу HTTP. Они используют те же HTTP-команды, что и для получения страниц и отправки данных на серверы. Ниже приведен перечень команд.
GET
: получение данных из веб-службы.POST
: создание нового элемента данных в веб-службе.PUT
: изменение элемента данных в веб-службе.PATCH
: обновление элемента данных в веб-службе путем описания набора инструкций для изменения этого элемента. Пример приложения в этом модуле не использует эту команду.DELETE
: удаление элемента данных в веб-службе.
API-интерфейсы веб-службы, которые соответствуют REST, называются RESTful API. Они определяются с помощью следующих элементов:
- Базовый универсальный код ресурса (URI).
- Методы HTTP, в том числе
GET
,POST
,PUT
,PATCH
иDELETE
. - Тип носителя данных, например нотация объектов JavaScript (JSON) или XML.
API-интерфейсу часто требуется предоставлять службы для нескольких разных, но связанных друг с другом элементов. Например, наш API пиццы может управлять пиццами, клиентами и заказами. Мы используем маршрутизацию для сопоставления URI (универсальных идентификаторов ресурсов) с логическими делениями в нашем коде, чтобы запросы на https://localhost:5000/pizza перенаправление PizzaController
в и запросы https://localhost:5000/order направляться в OrderController
.
Преимущества создания API-интерфейсов в ASP.NET Core
При работе с ASP.NET можно использовать одну платформу и одинаковые шаблоны для создания как веб-страниц, так и служб. Вы можете повторно использовать классы моделей и логику проверки, а также обслуживать как веб-страницы, так и службы параллельно в одном проекте. Этот подход имеет следующие преимущества.
Простая сериализация: платформа ASP.NET была разработана для современных веб-приложений. Конечные точки автоматически сериализуют ваши классы в правильно отформатированный JSON без дополнительных действий с вашей стороны. Никакой особой настройки не требуется. Сериализация для конечных точек с уникальными требованиями можно настроить.
Проверка подлинности и авторизация: для обеспечения безопасности конечные точки API поддерживают стандартную для отрасли технологию JSON Web Token (JWT). Авторизация на основе политик позволяет гибко определять в коде мощные правила управления доступом.
Маршрутизация вместе с кодом. ASP.NET позволяет встраивать в код определения маршрутов и команд с помощью атрибутов. Данные из пути запроса, строки запроса и текст запроса автоматически привязываются к параметрам метода.
HTTPS по умолчанию: протокол HTTPS является важной частью современных профессиональных веб-API. В нем применяется сквозное шифрование для обеспечения конфиденциальности и защиты от перехвата вызовов API или их изменения при передаче между клиентом и сервером.
ASP.NET обеспечивает поддержку HTTPS в стандартной конфигурации. Он автоматически создает тестовый сертификат и легко импортирует его, чтобы вы могли обеспечить локальное использование протокола HTTPS для безопасного запуска и отладки приложений перед их публикацией.
Повторное использование кода и знаний в приложениях .NET
Вы можете использовать навыки и экосистему .NET для совместного использования логики из веб-API в другие приложения, созданные с помощью .NET, включая мобильные, веб-приложения, настольные компьютеры и службы.
Тестирование веб-API с помощью .NET HTTP REPL
При разработке традиционного веб-сайта результат обычно просматривают и тестируют в веб-браузере. Интерфейсы веб-API принимают и возвращают данные, а не HTML, поэтому веб-браузер не является лучшим средством для их тестирования.
Одним из самых простых вариантов изучения и взаимодействия с веб-API является http REPL .NET (цикл чтения и оценки печати). Это простой и популярный способ создания интерактивных сред командной строки. В следующем уроке вы создадите простой веб-API, а затем взаимодействуете с ним с помощью HTTP REPL .NET.