2010-11-22 14 views
5

He estado jugando en los últimos 2 meses y hasta ahora todo va bien, pero hay un área en la que tengo dudas.Rieles: recursos RESTful: ¿vale la pena usar o inflexible/sobrevalorado?

Sigo escuchando acerca de las alegrías de los recursos RESTful Rails: es decir, un 'recurso: foo' en config/routes, y sus 7 acciones de descanso en el controlador.

Excepto por cosas muy simples (por ejemplo, cosas que se ejecutan al 99% ejecutando 'generate scaffold'), me parece menos conveniente intentar exprimir la funcionalidad de mi proyecto en ese enfoque que simplemente hacer coincidir urls en config/routes one-by -uno y haga cada acción según sea necesario.

Pero sigo teniendo la sensación de que estoy equivocado, y de que en todas las circunstancias excepto en las más extremas, los recursos RESTOS son el camino a seguir.

Así:

(a) ¿Alguien puede ofrecer una opinión sobre esto?

(b) Para personas con experiencia en rieles, ¿qué porcentaje de sus rutas en un proyecto típico son: recursos y qué% están codificados acción por acción? Cheers ...

+0

Esta es una pregunta subjetiva, y estoy seguro que conducirá a un gran debate :) – rmk

+0

De acuerdo. El hecho de que la pregunta incluya "¿Alguien puede opinar sobre esto?" está pidiendo problemas – RPM1984

Respuesta

5

Los recursos son convenientes, pero no son una función de "talla única". Algunas cosas simplemente no tienen sentido con los 7 métodos.

Tenga en cuenta que you can:

  • Excluir métodos específicos con :except.
  • Incluye solo métodos específicos con :only.
  • Agregue sus propios métodos al recurso.

Por lo tanto, no son tan inflexibles como usted piensa. Pero si, después de tomar esos 3 puntos en mente, el recurso simplemente "no se siente bien", omítalo! REST nunca tuvo la intención de reemplazar el enrutamiento regular, solo trata de abstraer el caso de uso más común.

Si omite por completo los recursos RESTful, se perderá una tonelada de funcionalidad gratuita. Úsalo sabiamente y estarás bien.

0

Generalmente comienzo un proyecto con la arquitectura REST en mente. Construyo mi funcionalidad básica de esta manera, pero a medida que el proyecto/sitio web progresa escribo más y más vistas que no encajan en la arquitectura RESTful. Los sitios de marketing y la funcionalidad paralela son ejemplos perfectos de esto.

Aquí es un artículo sobre el enfoque:

http://ablogaboutcode.com/2010/11/22/to-be-or-not-to-be-restful-ruby-on-rails-best-practices/


Antes de empezar, he aquí algunas preguntas que puede preguntarse a sí mismo:

  1. hace esto controlador/ver trato principalmente con un objeto/entidad como una publicación, Blog?
  2. ¿Las acciones de creación, actualización, eliminación, edición y nuevas estarán disponibles en la web?

Como pauta, si su respuesta es SI a estas dos preguntas, entonces es probablemente mejor empezar con el reposo y esperar que es muy probable que utilice la arquitectura como un bloque de construcción para acciones y vistas adicionales es posible que desee realizar . De lo contrario, elija una URL que mejor represente lo que la acción mostrará o hará (/ archives,/tour,/december-offer) y asegúrese de usar los protocolos HTTP adecuados (GET para visualizar, PUT para actualizar, SUPRIMIR para eliminar y POST Para crear).