Документирование 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 в своем приложении.

Читать далее

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

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

Читать далее

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

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

Читать далее

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

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

Читать далее

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

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

Читать далее

Централизованная обработка ошибок. Метод расширения UseExceptionHandler()

Обработка исключений позволяет нам избежать аварийного завершения работы приложения. Для обработки исключений в приложениях C#, обычно, используются блоки try...catch с ключевым словом final для того, чтобы очистить ресурсы приложения. Это стандартная практика обработки исключений, которая может также применяться и в приложениях ASP.NET Core Web API. Однако, платформа ASP.NET Core позволяет извлечь всю логику обработки исключений и сосредоточить её в одном централизованном месте, избежав тем самым использования блоков try…catch в действиях контроллера и обеспечить, при необходимости, единый формат сообщений о возникших исключительных ситуациях в приложении. Такой подход к обработке исключений в приложениях ASP.NET Core называется Global Error Handling – глобальная обработка ошибок.

Читать далее