Sin embargo si queremos sacar un poco más de provecho a la estructura que nos ofrece AngularJS podemos trabajar con $resource que nos permite construir un modelo y de ahí utilizar los objetos en nuestra aplicación para hacer las acciones directamente, dejando así la posibilidad de ahorrar trabajo y código.
Estructura de un recurso REST en Angular JS
Cuando decidimos trabajar con $resource podemos definir una estructura que contenga los siguientes elementos:
- La URL de la parte de servidor del recurso.
- El tipo de parámetros para las peticiones.
- Métodos adicionales que encapsulan los métodos estándar, de forma que podamos ampliar su funcionalidad.
- Los tipos de recursos esperados.
- Las cabeceras.
Ejemplo
Digamos que tenemos un recurso que recibe un usuario y una tarjeta de crédito, donde el sistema le hace un cargo, esto es muy común para tiendas en línea y cualquier otro tipo de aplicación donde recibamos pagos, para ello debemos crear un servicio AngularJS, donde vamos a definir los parámetros básicos y solo un método adicional que será el de pago, en el cual podremos establecer el monto a cobrar a dicha tarjeta:
Si somos observadores vemos que no definimos métodos save, delete o get, y es porque ya estos vienen por defecto con la definición, por ello solo nos concentramos en los métodos específicos de nuestra lógica de negocios, en este caso es el método pago que envía una solicitud por POST a nuestro recurso.
Si ahora queremos poner en práctica nuestro pequeño recurso, solo debemos hacer algo como lo siguiente, donde vamos a ejecutar todas las acciones que tenemos disponibles:
Aquí vemos que lo primero que hacemos es consultar nuestras tarjetas disponibles, luego obtenemos una en especial para trabajar con ella directamente, dentro le decimos que cada tarjeta que obtenemos debe ser una instancia de nuestro modelo para poder trabajar.
Finalmente guardamos un parámetro en la tarjeta, con el método save lo enviamos al modelo y luego al invocar el método pago con una cantidad enviamos todos los datos al servidor. Vemos entonces como pudimos acortar mucho camino, que si lo hubiésemos definido únicamente con $http, ya que de esa forma hubiésemos tenido que definir todos los métodos que el recurso AngularJS ya nos da.
Con esto finalizamos este tutorial, hemos aprendido a manejar los recursos REST desde AngularJS y de una forma práctica poder empezar a utilizarlos dentro de nuestra aplicación, es importante destacar que no es la única forma de hacerlo y que si queremos ver hasta dónde podemos llegar podemos investigar un poco más dentro de la documentación.