Документирование API. Основы Swagger

До сих пор мы разрабатывали нашы проекты ASP.NET Core Web API, особенно не вдаваясь в вопросы документирования тех или иных возможностей и функций приложения. Между тем, документирование API – это, едва ли не самая важная часть работы над проектом, если вы планируете его распространять среди широкого круга пользователей. Именно документация API позволяет потенциальным и уже имеющимся пользователям разобраться с тем, как работает ваш API, какие методы предоставляет, как его эффективно использовать и так далее.

Читать далее

Согласование содержимого. Собственные форматировщики

В ASP.NET Core используются два вида форматировщиков – для форматирования входных данных (input formatters) и форматирования выходных данных (output formatters). И, хотя в подавляющем большинстве случаев, для приложения Web API достаточно того же формата JSON для форматирования данных, всё же иногда может потребоваться, чтобы наше приложение могло обрабатывать и такие форматы, которые не предусмотрены по умолчанию в ASP.NET Core.

Читать далее

Согласование содержимого. Введение

На сегодняшний день, практически форматом по умолчанию для отправки ответа клиенту сервером Web API считается JSON. Это действительно довольно популярный, лаконичный и простой формат обмена данными, который используется практически повсеместно.

Читать далее

CORS

Одной из самых неочевидных проблем, с которыми может столкнуться начинающий разработчик ASP.NET Core является CORS.

CORS (Cross-origin resource sharing — «совместное использование ресурсов между разными источниками») — это технология современных браузеров, которая позволяет предоставить веб-страницам доступ к ресурсам другого домена. По умолчанию веб-браузеры в целях безопасности ограничивают ajax-запросы между различными доменами и такое поведение иногда может оказаться неприемлемым для наших приложений ASP.NET Core. В этом случае мы должны использовать возможности платформы ASP.NET Core для настройки CORS в своем приложении.

Читать далее

Сжатие ответов

Сжатие ответов – это ещё один из наиболее часто применяемых способов повышения производительности веб-приложения. Пропускная способность Сети – ресурс ограниченный и, чем меньший объем данных мы передаем от сервера к клиенту и наоборот, тем наше приложение может стать отзывчивее и быстрее реагировать на запросы пользователей.

Читать далее

HTTP-кэширование. Кэширование ответов (response caching)

HTTP-кэширование (веб-кэширование), как и кэширование данных, является способом повышения производительности приложений. При этом управление HTTP-кэшированием ресурсов осуществляется с помощью заголовков запросов. Обычно выделяют два вида http-кэша – приватный (private cache) и кэш совместного использования (shared cache). Также, в различных источниках можно встретить такие названия как клиентский кэш, шлюзовый, прокси-кэш и так далее. Но, в любом случае, все эти виды кэшей так или иначе можно свести к первым двум видам: приватный (клиентский) кэш – это кэш, который доступен конкретному пользователю и хранится на его компьютере, а кэш совместного пользования, в свою очередь, может располагаться где-либо в Сети и быть доступным многим пользователям.

Читать далее

Распределенное кэширование (Distributed Cache)

Распределенный кэш (Distributed Cache) —  кэш хранящийся в какой-либо внешней службе и, если один сервер сохранил элемент кэша, то другие серверы могут его использовать. Например, в ASP.NET Core для распределенного кэша может использоваться такой сервис, как Redis.

Читать далее

Кэширование в памяти (In-Memory Cache)

Кэширование — это относительно простая и, в то же время, эффективная концепция в программировании, идея которой состоит в том, чтобы повторно использовать данные, не прибегая к выполнению повторных дорогостоящих операций. В ASP.NET Core предусмотрены различные механизмы кэширования данных.

Читать далее

Централизованная обработка ошибок. Интерфейс IExceptionHandler

Начиная с ASP.NET Core 8.0 также для перехвата необработанных исключений и их централизованной обработки можно использовать интерфейс IExceptionHandler, который используется компонентом middleware для обработки исключений

Читать далее