REST.convencidos += 2

Son muchas las veces en que nos hemos puesto a discutir Aníbal, Edgar y yo acerca de si "REST es, o no es". Desde el principio estuve dispuesto a probar el concepto con la implementación de Rails y debo admitir que al final me gustó como se organizan los modelos con sus controladores, creando así los recursos.

Edgar por otro lado no dice que eso este mal, el problema es que se rompe el concepto de CoC por que tienes que estar modificando cada rato el archivo routes.rb y esto tan tedioso como volver a los tiempos de struts-config.xml (SUSTO!).

Ya no me empezaba a cuadrar la cosa cuando oías a Edgar gritar desde su oficina que REST era ronchoso por X o Y, de cualquier forma seguimos usando REST en la implementación de nuevos proyectos para estar convencidos de que "REST no es".

Un dia trabajando en la autenticación y permisología de una aplicación, el cliente quería restringir los recursos para que los usuarios tuvieran privilegios de sólo lectura, o lectura-escritura. Pues Aníbal y yo estabamos claros de que esta implementación no iba a ser rápida (creación de tablas de permisología y un manejo tedioso de condiciones).

Entre tanto brainstorming y propuestas nos dimos cuenta que la arquitectura REST ya organizaba todo de una manera sencilla, dado que manejabamos recursos que siempre tienen las acciones show, edit, update, new, create, destroy, list; la organización de lectura o escritura ya estaba lista! Los de lectura son las acciones show, index y list, y los de escritura son el resto de las acciones new, edit, update, create, destroy. Al usar el plugin de restfull_authentication. La implementación fue algo tán sencillo como:

def authorized?
resource = controller_name.underscore.split('_').first
  action = action_name.downcase.to_sym
  if [:destroy, :update, :create, :edit, :new].include?(action)
    current_user.can?(:write, resource)
  elsif [:show,  :index, :list].include?(action)
    current_user.can?(:read, resource)
  end
end

Si es cierto que REST en Rails pone el trabajo tedioso en la configuración de la aplicación, esta clase de beneficios son lo que hacen que REST gane sus puntos, tanto Aníbal como yo quedamos convencidos que si esta concepción de REST no es la implementación final en el framework Rails, "REST es".


2 Respuestas a “REST.convencidos += 2”

  1. 1 zeitan

    Como queda entonces la configuracion?
    En acegi es medio tedioso, los e proque recien ahora estamos haciendo algo y con los roles y el wiring he escuchaod varios gritos x alli...
    Salu2

  2. 2 Edgar J. Suárez

    Que tal.

    Es curioso pero discrepo de mi tocayo xD. A mí sí me gusta REST, es mágico! :O

    Como recomendación, para el manejo de permisos es más fácil usar el plugin acl_system [1] ya que queda perfecto con restful_authentication.

    Saludos ;)

    [1] http://opensvn.csie.org/ezra/rails/plugins/dev/acl_system2/

Añade un Comentario





RSS feeds

Suscríbete a nuestros RSS Feeds