Bir REST API'si oluşturmak için Grape ve Rails kullanıyorum. Temel mimariye sahibim ve işleri 'temizlemek' için yer arıyorum. Bu yerlerden biri hata işleme/işleme.Üzüm hatası yönetimi stratejisi?
Şu anda tüm API için root.rb (GRAPE :: API temel sınıf) dosyasındaki hataları kurtarıyorum. Onları biçimlendiriyorum ve daha sonra hatayı rack_response üzerinden geri gönderiyorum. Her şey işe yarıyor ama root.rb dosyası kurtarılan tüm hatalar ile biraz şişiriliyor ve bazılarının yapılması gereken özel ayrıştırma var. Herkesin kendi modülüne taşınabilmesi ve root.rb (GRAPE :: API temel sınıfı) 'nı oldukça yalın bırakması için hata işleme için iyi bir strateji geliştirip geliştirmediğini merak ediyordum.
Gerçekten örneğin, bir hata işleme modülü oluşturmak ve Her bir hata türü için yöntemler tanımlamak istiyorum... root.rb dosyasında Sonra
module API
module ErrorHandler
def record_not_found
rack_response API::Utils::ApiErrors.new({type: e.class.name, message: 'Record not found'}).to_json, 404
end
end
end
yapmak bu
module API
class Root < Grape::API
prefix 'api'
format :json
helpers API::ErrorHandler
rescue_from ActiveRecord::RecordNotFound, with: :record_not_found # Use the helper method as the handler for this error
end
end
gibi bir şey
Böyle bir şey yapan oldu mu? Yukarıdaki stratejinin çeşitli tatlarını deniyorum ama işe yaramayacak bir şey göremiyorum.
Bir göz atın [Here] (https://github.com/intridea/grape/issues/177), bir özellik isteğiydi, aynı zamanda insanlar şimdilik bir iş bulmuş gibi görünüyor. – engineersmnky
Tam olarak aradığım şey değil ama kesinlikle bağlantıda düşünülmesi gereken bazı fikirler. Teşekkürler. – mfunaro