Мне интересно узнать, как лучше всего создавать веб-сервисы, которые поддерживают вывод в формате XML и JSON.
В данный момент мой сервис ориентирован на XML (см. Ниже), но я хочу добавить поддержку JSON.
Вот один пример:
def create
render_authentication_error and return if !@user
render_parameter_not_found_error("item") and return if params[:item].nil?
render_parameter_not_found_error("name") and return if params[:item][:name].blank?
@item = Item.new(params[:item])
begin
if !@item.save
raise "Item not saved"
end
rescue
render_resource_not_saved_error("Error saving #{@item.name}")
else
render_resource_created(:location => item_path(@item))
end
end
В ApplicationController есть вспомогательные методы, которые соответственно отображают XML.
Я не уверен, как добавить сюда блок respond_to
, так как мне нужно сделать проверки.Есть ли способ получить format
в контроллере за пределами блока respond_to
, чтобы я мог также выводить сообщения об ошибках в заданном формате?
respond_to do |format|
format.html { render :json => @item.to_json }
format.xml { render :xml => @item }
end
Дайте мне знать, если вам нужны какие-либо разъяснения.
ОБНОВЛЕНИЕ Полагаю, я ищу что-то похожее на response_with в Rails 3. Я все еще на Rails 2.3 ... Интересно, можно ли это сделать2.3?
ОБНОВЛЕНИЕ Унаследованные ресурсы похоже на то, что я ищу.
Спасибо!