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

Responder a