При разработке приложений ASP.NET Core Web API на основе контроллеров платформа позволяет нам максимально лаконично и удобно работать с запросами пользователя и ответами сервера. По сути, в большинстве случаев, для формирования ответа пользователю, нам требуется создать какой-либо объект, содержащий данные для ответа и передать его в результате выполнения метода контроллера. Далее, ASP.NET Core задействует встроенные механизмы сериализации объекта в JSON, добавит необходимые заголовки ответа и т.д. Чаще нам потребуется работа с параметрами запроса пользователя, которые в объекте HttpContext содержатся в свойстве Request. Рассмотрим это свойство подробнее, прежде, чем рассмотрим ещё один пример использования middleware в своих приложениях.
ASP.NET Core Web API
ASP.NET Core Web API. RequestDelegate и контекст запроса
Для создания компонентов middleware используется делегат RequestDelegate, который выполняет некоторое действие и принимает контекст запроса. который представлен объектом HttpContext. Рассмотрим использование этого объекта в приложениях ASP.NET Core Web API.
ASP.NET Core Web API. Конвейер обработки запросов и middleware
Обработка запросов в ASP.NET Core построена по принципу конвейера, состоящего из делегатов запроса. Делегат запроса представляет собой некий фрагмент кода, который может выглядеть как обычный анонимный метод или класс C#. Делегаты запроса называются ПО промежуточного слоя. Также можно встретить такие названия как компонент middleware или просто — middleware. Компонент middleware может выполнять работу как до, так и после вызова следующего компонента в конвейере запроса или же не вызывать следующий компонент конвейера — в этом случае компонент middleware будет называться терминальным. В этой части мы рассмотрим основные моменты, касающиеся организации конвейера обработки запросов в приложениях ASP.NET Core Web API.
ASP.NET Core Web API. Основные термины
При работе c ASP.NET Core Web API мы будем использовать различные термины и определения, касающиеся каких-то моментов при разработке Web API, например, такие термины как ресурс, HTTP-глагол и т.д. Рассмотрим эти термины.
ASP.NET Core Web API. Типы значений, возвращаемые контроллерами
Контроллеры ASP.NET Core Web API могут возвращать данные различных типов от простых, например, чисел и до сложных объектов. В этой части рассмотрим основные типы значений, возвращаемые контроллерами.
ASP.NET Core Web API. Контроллеры
Любой проект ASP.NET Core Web API на основе контроллеров состоит из одного или нескольких классов — контроллеров, выполняющих определенные действия. Контроллер — это тот компонент, который обеспечивает взаимосвязь между пользователем и приложением. Он обрабатывает входящие запросы и, либо, сразу генерирует данные для ответа, либо использует модель для манипуляции с данными и, затем, генерирует данные для ответа. В проектах ASP.NET Core Web API используются соглашения, в соответствии с которыми, обычные классы C# могут считаться контроллерами.
ASP.NET Core Web API. Первое приложение в Visual Studio
Итак, создадим свое первое приложение ASP.NET Core Web API на основе контроллеров в Visual Studio.
ASP.NET Core Web API. Введение в Web API
В процессе изучения ASP.NET Core и, в целом языка программирования C#, мы довольно часто используем аббревиатуру API, особо не вдаваясь в подробности того, что эта аббревиатура представляет и что означает. В этой части мы разберемся с тем, что из себя представляет API и посмотрим, в общих чертах, на возможности создания Web API в ASP.NET Core.