Je suis en train de convertir une application Rails 2 en Rails 3. J'ai actuellement un contrôleur configuré comme suit :
class Api::RegionsController < ApplicationController
respond_to :xml, :json
end
avec et une action qui ressemble à ce qui suit :
def index
@regions = Region.all
respond_with @regions
end
La mise en œuvre est assez simple, api/regions, api/regions.xml et api/regions.json répondent tous comme prévu. Le problème est que je veux que les api/regions répondent par défaut via XML. J'ai des consommateurs qui attendent une réponse XML et je ne voudrais pas qu'ils modifient toutes leurs URL pour inclure .xml, sauf en cas de nécessité absolue.
Dans Rails 2, vous pouvez accomplir cela en faisant ceci :
respond_to do |format|
format.xml { render :xml => @region.to_xml }
format.json { render :json => @region.to_json }
end
Mais dans Rails 3, je n'arrive pas à trouver un moyen de le transformer en réponse XML par défaut. Une idée ?
0 votes
Cet article de blog en parle : ryandaigle.com/articles/2009/8/10/ En particulier, regardez la section intitulée "Remplacement du comportement par défaut".
0 votes
Qu'en est-il de api/regions.html ? Doit-il rendre du HTML ? Ou bien... ?
0 votes
Aucun HTML ne doit être rendu par l'API. Les API sont séparées parce qu'un ensemble limité de fonctionnalités est disponible via l'API par rapport au site lui-même.