Me estoy adentrando estos días en mi primera API REST y me surgen un par de dudas de novato. Es una aplicación sencilla con una parte de admin y una pequeña app híbrida. Lo más destacable es que en la parte de admin habrá varios usuarios(uno por departamento) que son los encargados de crear los usuarios de la app. Como si fuese una especie de SAAS con clientes creando usuarios.
Para el admin realmente no necesito API porque con un backend normal en symfony suficiente pero la primera duda es si al ser de momento una aplicación sencilla merece la pena hacerlo todo vía API por si en un futuro se permite acceder vía app movil, se hace con angularjs o similares etc. no tener que trastocarlo.
En caso de hacerlo todo vía API la duda es si separar la api en dos partes. Una API para los clientes que acceden por la app que son poco más que tres entidades y otra API para el backend y tenerlo todo separado.
Personalmente, lo separaría para tener el código más modularizado y hacerlo más mantenible.
A nivel de rendimiento no habría cambio alguno si al final ambas APIs atacan a la misma bbdd.
Si al final decides tenerlo todo en la misma API, hazte un sistema de permisos robusto para que no pasen cosas que no te gustaría que ocurrieran... xDDD
Siguiendo la filosofia DDD, lo importante es que organices bien las operaciones de tu sistema en una capa de dominio (alta nuevo usuario, asignar permiso, obtener lista de productos, modificar información de un producto, etc) y siguiendo una arquitectura en forma de cebolla (http://www.infoq.com/news/2014/10/ddd-onion-architecture).
Posteriormente puedes crear una capa de "aplicación" que de acceso a dichas operaciones ya sea a traves de una API, con formularios para el adminsitrador, o lo que quieres. Lo importante es que te sera facil añadir/quitar operacions puesto que la logica la tendras implementado de forma unica en la capa de dominio.
Me estoy adentrando estos días en mi primera API REST y me surgen un par de dudas de novato. Es una aplicación sencilla con una parte de admin y una pequeña app híbrida. Lo más destacable es que en la parte de admin habrá varios usuarios(uno por departamento) que son los encargados de crear los usuarios de la app. Como si fuese una especie de SAAS con clientes creando usuarios.
Para el admin realmente no necesito API porque con un backend normal en symfony suficiente pero la primera duda es si al ser de momento una aplicación sencilla merece la pena hacerlo todo vía API por si en un futuro se permite acceder vía app movil, se hace con angularjs o similares etc. no tener que trastocarlo.
En caso de hacerlo todo vía API la duda es si separar la api en dos partes. Una API para los clientes que acceden por la app que son poco más que tres entidades y otra API para el backend y tenerlo todo separado.
11/08/2015 10:21
Tambien lecturas casi obligatorias:
http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api
http://simonguest.com/2013/07/05/designing-a-web-api-for-mobile-apps/
06/08/2015 09:56
A nivel de rendimiento no habría cambio alguno si al final ambas APIs atacan a la misma bbdd.
Si al final decides tenerlo todo en la misma API, hazte un sistema de permisos robusto para que no pasen cosas que no te gustaría que ocurrieran... xDDD
11/08/2015 11:27
Posteriormente puedes crear una capa de "aplicación" que de acceso a dichas operaciones ya sea a traves de una API, con formularios para el adminsitrador, o lo que quieres. Lo importante es que te sera facil añadir/quitar operacions puesto que la logica la tendras implementado de forma unica en la capa de dominio.
Saludos.