Arquitectura de Marketplace
La aplicación de marketplace se encuentra estructurada por funcionalidad, donde para cada funcionalidad existe un módulo asociado.
Cada módulo consta de dos elementos fundamentales.
Controlador
Cada módulo cuenta con al menos un controlador en el archivo modulo.ctrl.js
, el cual define el comportamiento de la aplicación a partir de un API que expone a las plantillas. Por ejemplo, es en el controlador donde se define que, al cargar la vista, se pida al servidor (a través deRestangular) la lista de los productos disponibles. Igualmente es el controlador quien define lo que debe suceder una vez se recibe una respuesta desde el servidor.
Configuración del módulo
Cada módulo cuenta también con un archivo modulo.mod.js
. Este archivo está destinado para la definición y configuración del módulo. En él encontramos normalmente los siguientes tres elementos:
- Declaración del módulo, estableciendo sus dependencias.
- Definición de la URL a la cual deben hacerle las peticiones desde el servicio REST (Contexto)
- Definición del modelo de la vista, el cual determina la estructura de la información a desplegar.
- Definición de los diferentes estados de un modulo.
Definición de estados
Para el modulo de Book se crea un estado por cada funcionalidad, esto quiere decir que se crea una URL para acceder a crear, eliminar, ver o listar un Book, así mismo se define un estado para las relaciones que tenga Book, por ejemplo un estado para asociar una Editorial a un Book y un estado para agregar Reviews a un Book. El siguiente gráfico ilustra la definición de estados para Book.