Я создал объект службы в Rails для работы в качестве интерфейса между нашим приложением и нашим API.проверка и обработка ошибок для объектов службы
Я получил идею от http://blog.codeclimate.com/blog/2012/10/17/7-ways-to-decompose-fat-activerecord-models/
Вот небольшой пример:
class PackagesService
def self.get_package(package_id)
raise ArgumentError.new("package_id can't be nil") if package_id.blank?
package = API::get "/packages/#{package_id}"
package = JSON.parse package,
:symbolize_names => true unless package.blank?
end
end
Есть ли хороший шаблон для обработки проверки и/или бросали ошибки для объектов службы?
Для валидаций:
- Я должен проверить все входы на ноль или неправильного типа. Есть ли способ упростить проверку? Может быть, рельсы?
Для ошибок:
- я мог поймать все ошибки API, а затем безопасно возвращать ноль. Но программист, использующий служебный объект, может не знать значения nil.
- Я мог поймать ошибки API и поднять еще одну ошибку, что означает дополнительные усилия для этого во всех функциях
- Третий вариант: оставить его таким, как есть, и позволить программисту обрабатывать все ошибки API.
Дайте мне знать, если вы знаете хороший образец или у вас есть идеи по интерфейсу API.
Большое спасибо, это тот ответ, который я искал! – ieldanr