2010/3/12 dwayne <[email protected]> > Quiero generar una API para mi aplicación y no termino de cuál es la > estructura ideal. > > *1)* Una idea que se me ocurrió es generar un namespace "api" e ir > poniendo ahí los controllers con las diferentes funcionalidades que quiera > darle a la api. Generar tal vez un api_application_controller.rb y utilizar > oauth, etc. > > *2)* Otra es hace un api_controller.rb y meter ahí lo method que sean > necesarios y las restricciones via oauth o lo que sea. > > *3)* y finalmente la otra es no generar un controller o namespace en > particular sino que ir utilizando format.xml en los methods ya existentes > para responder a los llamados desde la api y sólo publicar en la API > aquellos que tengan el acceso permitido via Oauth. > > ¿Alguien ya hizo un desarrollo de este tipo? ¿Hay una manera "oficial" de > hacer esto? ¿o una "rails way"? > > lo que yo te aconsejaría es no poner la api en la misma aplicación. utilizá otro subdominio ej: api.dominio.tld y pone ahí el manejo del api con sinatra por ejemplo. de esa forma el dia de mañana podes tener en servidores distintos el manejador de api de la aplicacion sin ningún problema, hacer upgrades o deploys sin afectar al otro.
un tema que aveces no se tiene en cuenta y a largo plazo te puede jugar en contra es el tema del versionado de las llamadas api. una forma puede ser hacerlo explicita, ej: api.dominio.tld/servicio/v1/llamada/parametros otros utilizan los mismos parámetros para pasar a que version del api a llamar y támbien he visto algo muy prolijo (para mi gusto) que es pasar la versión del api a usar en los headers del request. saludos -- :: nelson :: [ artesano de software & software craftsman ] http://netflux.com.ar > _______________________________________________ > Ruby mailing list > [email protected] > http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar > >
_______________________________________________ Ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
