पर एपीआई अनुरोधों को प्रतिबंधित करें मैं सभी एपीआई नियंत्रकों को JSON पथ पर रीडायरेक्ट करने के अनुरोधों को प्रतिबंधित करना चाहता हूं। मैं एक रीडायरेक्ट का उपयोग करना चाहता हूं क्योंकि यूआरएल प्रतिक्रिया के अनुसार बदलना चाहिए।
एक विकल्प before_filter
का उपयोग करना होगा जो अनुरोध को उसी क्रिया के लिए रीडायरेक्ट करता है लेकिन JSON प्रारूप को मजबूर करता है। उदाहरण अभी तक काम नहीं कर रहा है!रेल: जेएसओएन प्रारूप
# base_controller.rb
class Api::V1::BaseController < InheritedResources::Base
before_filter :force_response_format
respond_to :json
def force_response_format
redirect_to, params[:format] = :json
end
end
एक और विकल्प मार्ग सेटिंग्स में प्रारूप को प्रतिबंधित करना होगा।
# routes.rb
MyApp::Application.routes.draw do
namespace :api, defaults: { format: 'json' } do
namespace :v1 do
resources :posts
end
end
end
मैं सभी अनुरोध एक JSON अनुरोध के रूप में खत्म करना चाहते हैं:
http://localhost:3000/api/v1/posts
http://localhost:3000/api/v1/posts.html
http://localhost:3000/api/v1/posts.xml
http://localhost:3000/api/v1/posts.json
...
कौन सा कार्यनीति की सलाह देंगे?
+1 टिप्पणी की शुरुआत के लिए +1। एक प्रारूप जोड़ना मेरे अनुभव में इतना आसान नहीं है, हालांकि रेल इसे कार्यान्वित करना आसान बनाता है। एपीआई डिजाइनर को अभी भी सभी प्रभावों के साथ एक अतिरिक्त प्रारूप का समर्थन करने के लिए क्या मतलब है, इसके बारे में सोचना है। –