DeliveryProxy

В данном репозитории представлено тестовое задание для Спидбокс. Этот webapi сервис предназначен для расчета стоимости отправки посылки через СДЭК.

Технические подробности

  • Версия .NET Core 7.0
  • СУБД не используются, т.к. этот сервис прокси для API Сдэка.
  • Валидация запросов происходит на стороне API Сдэка, а потом информация об ошибке пересылается через этот сервис
  • Для авторизации запросов на API Сдэка используется фабрика, которая при создании HttpClient проверяет срок годностии bearer токена. И получает новый, если старый просрочен.
  • Обработка ошибок происходит при помощи Middleware. Подразумевается, что все ожидаемые ошибки должны наследоваться от DeliveryProxyException, который обрабатывается в Middleware. В случае, если выбрасывается исключение, которое не унаследовано от базового - такие ошибки считаются неожиданнами, поэтому возвращаем статус 500 InternalServerError.
  • Имеет смысл использовать Minimal Api в будущем. Но так как это подход еще не широко распространен, я решил использовать контроллеры.
  • Контейнеризация этого сервиса очень проста (по сути нужно прописать 1 шаблонный Dockerfile), сервис легко множится в ширину.