Ho creato un oggetto di servizio in Rails per funzionare come interfaccia tra la nostra app e la nostra API.convalida e gestione degli errori per gli oggetti di servizio
ho avuto l'idea da http://blog.codeclimate.com/blog/2012/10/17/7-ways-to-decompose-fat-activerecord-models/
Ecco un piccolo esempio:
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
C'è un buon modello per la gestione di validazione e/o gettando errori per gli oggetti di servizio?
per le convalide:
- devo controllare tutti gli ingressi per nullo o tipo sbagliato. C'è un modo per una facile convalida? Forse un'estensione di binari?
Per gli errori:
- ho potuto prendere tutti gli errori API e poi tornare sani e salvi a zero. Ma il programmatore che utilizza l'oggetto servizio potrebbe non conoscere il significato di nil.
- È possibile rilevare gli errori API e generare un altro errore, il che significa un ulteriore sforzo in tutte le funzioni
- La terza opzione è lasciare così com'è e lasciare che il programmatore gestisca tutti gli errori dall'API.
Fatemi sapere se conoscete uno schema valido o se avete idee migliori per interfacciare un'API.
Grazie mille, questo è il tipo di risposta che stavo cercando! – ieldanr