Как улучшить обработку параметра currency, если клиент передаст неизвестное значение, например опечатку вместо RUB?

Проверяйте currency по явному набору поддерживаемых кодов и возвращайте понятную ошибку валидации. Не заменяйте неизвестное значение на RUB молча.

Короткий ответ

Что ответить на собеседовании

Проверяйте currency по явному набору поддерживаемых кодов и возвращайте понятную ошибку валидации. Не заменяйте неизвестное значение на RUB молча.

Подробный разбор

Ответ с пояснениями

Проверяйте currency по явному набору поддерживаемых кодов и возвращайте понятную ошибку валидации. Не заменяйте неизвестное значение на RUB молча.

Например, {"code":"unsupported_currency","field":"currency","allowed":["RUB","USD"]} с согласованным HTTP 400/422. Нормализацию регистра и пробелов выполняйте только если это разрешено контрактом. Поддержка ISO-кода библиотекой не означает, что ваш сервис умеет проводить операции в этой валюте: нужен бизнес-allowlist. Ошибку парсинга enum перехватывайте на границе API, не превращая опечатку пользователя в 500. Значение должно проверяться до расчёта или создания операции.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее