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 tres elementos fundamentales.

Servicio REST

En cada módulo se puede encontrar un servicio de AngularJS creado en el archivo modulo.svc.js. Este servicio es el responsable de realizar las peticiones HTTP-REST al servidor de manera estandarizada.

Cada uno de los servicios crea un objeto de Restangular (Restangular es una librería para AngularJS que permite realizar peticiones REST para una URL específica). Haciendo uso de dicho objeto, el servicio crea un API que permite a cualquiera que lo use, acceder a funcionalidad de peticiones REST de manera independiente y reutilizable.

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 del servicio REST del título anterior) 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.