ASPNET Web API - gro1vy/DeliverServiceAPI GitHub Wiki

Что такое Web API?

Application Programming Interfaces (API) — это, по сути, сервисы HTTP, которые используются для взаимодействия между приложениями. Microsoft через платформу ASP.NET предоставляет способы создания Web API, к которой могут обращаться другие приложения. Причем это могут быть веб-приложения, мобильные или десктопные клиенты. image

В 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. image

Как вы можете видеть на изображении выше, клиент отправляет 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. После чего в самой папке нужно добавить сам контроллер. Поэтому заходим в пункт добавить и выбираем Контроллер. image

В открывшемся окне выбираем пустой Контроллер API. image

И далее в новом окне в поле имя указываем сове название с припиской Controller. image

В итоге получим следующий класс унаследованный от 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'.