मैं एक आरईएसटी एपीआई बनाने के लिए अंगूर और रेल का उपयोग कर रहा हूं। मेरे पास जगह पर बुनियादी वास्तुकला है और मैं चीजों को 'साफ' करने के लिए स्थानों की तलाश में हूं। उन स्थानों में से एक त्रुटि हैंडलिंग/प्रसंस्करण है।अंगूर त्रुटि प्रबंधन रणनीति?
मैं वर्तमान में पूरे एपीआई के लिए root.rb (GRAPE :: API बेस क्लास) फ़ाइल में त्रुटियों को बचा रहा हूं। मैं उन्हें प्रारूपित करता हूं और फिर त्रुटि को वापस rack_response के माध्यम से भेजता हूं। सब कुछ काम करता है लेकिन root.rb फ़ाइल को सभी त्रुटियों के साथ थोड़ा फूला हुआ हो रहा है और उनमें से कुछ को विशेष पार्सिंग है जो करने की आवश्यकता है। मैं सोच रहा था कि किसी ने त्रुटि प्रबंधन के लिए एक अच्छी रणनीति विकसित की है ताकि इसे अपने स्वयं के मॉड्यूल में स्थानांतरित किया जा सके और root.rb (GRAPE :: API बेस क्लास) को काफी दुबला छोड़ दें।
मैं वास्तव में उदाहरण के लिए एक त्रुटि प्रसंस्करण मॉड्यूल बना सकते हैं और प्रत्येक प्रकार की त्रुटि के लिए तरीकों को परिभाषित करना चाहते हैं ...
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
root.rb फ़ाइल में
तो ऐसा करते हैं
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
की तरह कुछ
क्या किसी ने ऐसा कुछ किया है? मैं उपर्युक्त रणनीति के विभिन्न स्वादों की कोशिश कर रहा हूं लेकिन मुझे कुछ भी काम नहीं मिल रहा है।
एक नज़र डालें [यहां] (https://github.com/intridea/grape/issues/177) ऐसा लगता है कि यह एक फीचर अनुरोध था/लेकिन ऐसा लगता है कि लोगों को अब के लिए एक काम मिल गया है। – engineersmnky
वही चीज़ नहीं है जिसे मैं ढूंढ रहा था लेकिन निश्चित रूप से कुछ विचारों को लिंक में सोचने के लिए। धन्यवाद। – mfunaro