Я занимаюсь разработкой приложения, которое имеет множество конечных точек API и php -client-lib для работы с ними. Библиотека создает DTO-объекты и передает их дальше. Что меня интересует, так это то, должен ли я ловить ошибки на стороне клиента или нет. Например:
- требуемый ключ
- несоответствие типа значения
- неверное значение ключа (DateTime или регулярное выражение с плавающей точкой, которые являются строковыми, но должны быть преобразованы в спецификациях c объекты)
Я разрабатываю сервер и клиентские скрипты самостоятельно! Я убежден, что сервер возвращает определенный json, либо это ошибка. Стоит ли полагаться на это в клиентском коде?
Объект DTO достаточно хорошо защищает меня от ошибок типов, и я могу поймать исключение TypeError. Кроме того, я могу добавить проверки внутри конструктора DTO и проверить, например, что ключ 'count' больше нуля.
С другой стороны, зачем мне эти сообщения об ошибках внутри клиента? Сам пользователь ничего не может сделать с этой информацией, и единственный вариант использования, который я вижу, это отладка.
В настоящее время я реализовал проверку json -schema + DTO и показываю все ошибки на стороне клиента. Это круто, но чем больше конечных точек я добавляю, тем больше проверок (json -схема + преобразование ошибок в читаемый человеком формат) я получаю. Разве все это не бессмысленно?
Я ищу совет о передовой практике. Как мне построить клиент для получения надежного и расширяемого кода?