दहाड़ (https://github.com/apotonick/roar) का उपयोग करना और ActiveRecord या किसी दृश्य-टेम्पलेट का उपयोग कर के बिना मैं चाहता हूँ:रेल 3 और JSON: डिफ़ॉल्ट रेंडरर लेकिन कस्टम माइम प्रकार
- डिफ़ॉल्ट JSON rederer का उपयोग, लेकिन मेरी खुद माइम प्रकार respond_with साथ JSON प्रस्तुत करना
- डिफ़ॉल्ट JSON पार्सर लेकिन मेरे खुद माइम प्रकार का उपयोग पैरामीटर हैश में बाद शरीर की प्रविष्टियों डाल करने के लिए।
config/initializers/mime_types.rb:
Mime::Type.register "application/vnd.xxx-v1+json" , :xxx_v1
नियंत्रकों/API/base_controller.rb
class Api::V1::BaseController < ActionController::Base
respond_to :xxx_v1
ActionController.add_renderer :xxx_v1 do |obj, options|
json = obj.to_json
self.content_type ||= Mime::Type.lookup('application/vnd.xxx-v1+json')
self.response_body = json
end
end
नियंत्रकों/API/user_controller.rb:
class Api::V1::UsersController < Api::V1::BaseController
def index
respond_with User.all
end
end
http://domain/users स्वीकार करें आवेदन/vnd.xxx-v1
त्रुटि: अनुपलब्ध टेम्पलेट एपीआई/वी 1/उपयोगकर्ता/इंडेक्स, एपीआई/वी 1/बेस/इंडेक्स {: हैंडलर => [: erb,: builder],: format => [: xxx_v1],: भाषा => [: en, द]}
Rails Custom Renderer या rails 3 response format and versioning using vendor MIME type in the Accept header जैसे कई पदों को पढ़ने के बाद मैं अभी भी यह काम .. नहीं मिल सकता है
- === छोटे अद्यतन == = -
जब मैं सीधे नियंत्रक में रेंडर का उपयोग करता हूं, तो यह काम कर रहा है! हमेशा respond_with के साथ समस्याओं ...
render :xxx_v1 => User.all
यह ऊपर बताए गए एक अलग, हालांकि अभी भी दिलचस्प सवाल का जवाब देता है, यानी, यह जवाब "मैं कैसे पर्स करना चाहता हूं" जबकि ऊपर दिए गए सवाल से पूछता है कि "मैं कैसे प्रस्तुत करूं।" –
लेकिन मेरे प्रश्न में "डिफ़ॉल्ट JSON पार्सर का उपयोग करें, लेकिन मेरा खुद का माइम प्रकार"; डी – Ginkgochris