我在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