ASPNET Web API - gro1vy/DeliverServiceAPI GitHub Wiki
Что такое Web API?
Application Programming Interfaces (API) — это, по сути, сервисы HTTP, которые используются для взаимодействия между приложениями. Microsoft через платформу ASP.NET предоставляет способы создания Web API, к которой могут обращаться другие приложения. Причем это могут быть веб-приложения, мобильные или десктопные клиенты.
В Web API ASP.NET используется принцип работы в стиле REST (Representation State Transfer или "передача состояния представления"). REST-архитектура предполагает применение следующих методов или типов запросов HTTP для взаимодействия с сервером: GET, POST, PUT и DELETE.
Web API позволяет взаимодействовать с клиентами, отправляя и получая данные в различных форматах, таких как JSON, XML, HTML и других.
Также Web API использует систему маршрутизации, которая позволяет определить URL-шаблоны и соответствующие им действия контроллера. Это упрощает настройку маршрутов и обработку входящих запросов. Как работает ASP.NET Web API? Web API ASP.NET Core в основном состоит из одного или нескольких классов контроллера, производных от ControllerBase. Класс ControllerBase предоставляет множество методов и свойств, полезных для работы с HTTP-запросами.
Над диаграмме снизу представлена архитекрута приложения Web API.
Как вы можете видеть на изображении выше, клиент отправляет HTTP-запрос к API, который — через контроллер — идентифицирует вызов и выполняет чтение или запись на уровне доступа к данным. Модель возвращается, в данном случае объект JSON {Name: "todo1"} в HTTP-ответе. Проще говоря, API соединяет клиента и данные простым и безопасным способом. Клиентом является ПО, которое использует веб-API (браузер, мобильное приложение и прочее). Модель — это объект, который представляет данные в нашем приложении. Модели представлены простыми классами C#. Контроллер — это объект, который обрабатывает HTTP-запрос и создает HTTP-ответ. В данном приложении один контроллер. Как создать проект ASP.NET Web API? Для ознакомления с тем, как созадать свой проект, используя ASP.NET Web API, в Visual Studio можно посмотреть следующую статью ASP.NET Core 6.
Как создать контроллер?
Перед созданием самого контроллера необходимо создать папку для всех контроллеров, которые мы будем добавлять, с названием Controllers. После чего в самой папке нужно добавить сам контроллер. Поэтому заходим в пункт добавить и выбираем Контроллер.
В открывшемся окне выбираем пустой Контроллер API.
И далее в новом окне в поле имя указываем сове название с припиской Controller.
В итоге получим следующий класс унаследованный от ControllerBase:
[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
[HttpGet]
public ActionResult Get()
{
return Ok();
}
}
Атрибут ApiController указывает на то, что это api контроллер, а атрибут Route на то, по какому адресу будет доступен этот контроллер.
У контроллера у методов, к которым можно отправить запрос, ставиться специальный атрибут, указывающий какой тип запроса он обрабатывает. В данном примере это запрос HttpGet, могут быть также HttpPost, HttpPut, HttpDelete и т.п.
Для того чтобы попасть в метод в примере, необходимо отправить запрос на адрес 'api/Values' c типом Get. Однако, если у нас два метода с одинаковым типом HttpGet, то asp.net выдаст ошибку, так как не сможет определить, какой метод вызывать. Для решения этой проблемы нужно в атрибуте HttpGet, добавить имя роутинга: [HttpGet("anyName")]. Тогда запрос нужно будет отправлять уже по адресу 'api/Values/anyName'.