Error 500? Как вместо кодов получать подробные сведения обо всех ошибках сразу
Привет, Хабр! Меня зовут Артём Корсаков. Я пишу на Scala и руковожу группой разработчиков в компании «Криптонит» , а также веду Scalabook — русскоязычную базу знаний по Scala и функциональному программированию. В этой статье расскажу про обработку ошибок в библиотеке http4s на Scala 3. Мы разберём, как настроить декодирование запросов так, чтобы клиент получал не просто код “500” или “422” с общим сообщением, а сразу видел развёрнутый список всех проблем в запросе. Например, что логин уже занят, пароль содержит недопустимые символы, а капча не введена. Пожалуй, самая раздражающая ошибка — это получение кода “500” в ответ на запрос, который ты десять раз перепроверил, сверился с документацией и уверен на все 100%, что запрос рабочий. Даже на 110%! В такие моменты раздражённо думаешь: “Что же этому серверу надо? Я же чётко сформулировал запрос! Ответить на этот вопрос порой сложно. Например, я хочу зарегистрироваться на сайте, ввожу логин/пароль и получаю сообщение "Internal Server Error". Первое желание – тут же покинуть сайт и поискать более дружелюбный. Давайте подумаем, как можно сделать сообщение об ошибке более информативным . Для этого будем использовать Scala 3, уточняющие типы и http4s . Представим, что мы создаём API сервиса авторизации, который (помимо прочего) должен регистрировать новых пользователей. Для начала определим структуру данных для создания нового пользователя.
https://habr.com/ru/companies/kryptonite/articles/1026698/
#функциональное_программирование #scala #http4s #обработка_ошибок #декодирование_запросов #backend

