AngularJS $resource

Muhammad Adil 20 marzo 2023
  1. AngularJS $resource frente a $http
  2. Ejemplo de AngularJS $resource
AngularJS $resource

AngularJS $resource es un servicio que le permite acceder a los servicios web RESTful de una manera más amigable con Angular. $resource se encarga de serializar y deserializar datos para que usted se concentre en la lógica de la aplicación.

Además, AngularJS $resource proporciona funciones para comunicarse con las API RESTful. Estas funciones simplifican la recuperación de datos de varias fuentes y admiten todos los métodos HTTP.

Por defecto, $resource realiza las siguientes cinco operaciones REST.

  1. Obtener una lista de elementos
  2. Conseguir un artículo
  3. Insertar un elemento
  4. Actualizar un artículo
  5. Eliminación de un elemento

AngularJS $resource frente a $http

El servicio $resource es una forma de consultar recursos remotos, como puntos finales REST. Es un servicio de AngularJS que proporciona funciones para crear objetos que representan datos remotos y realizar operaciones CRUD en esos objetos.

$http es un servicio AngularJS que proporciona funciones para realizar solicitudes AJAX al servidor. Puede usarse con cualquier biblioteca AJAX, pero debe usarse con el servicio $resource de AngularJS para obtener la funcionalidad CRUD completa.

$resource es una variable que se declara una vez y luego se usa para llamar a get, post, query, remove y delete a través de nuestro controlador/servicio. El $resource contiene todos los métodos prácticos incorporados, lo cual es una gran característica.

No necesitamos escribir código repetitivo al acceder a la API REST con $resource, lo que nos permite hacer que nuestras llamadas sean más superficiales y más relevantes.

Ejemplo de AngularJS $resource

Código JavaScript:

var app = angular.module('plunker', ['ngResource']);
app.factory('demo', function($resource) {

  var url = 'sample.json';
  var res = $resource(url, null, {
	query: {
		isArray: true,
	  transformResponse: function(data) {
		var items = angular.fromJson(data);
		var models = [];

			class Person {
			constructor(config) {
		   this.name=config.name;
			   }
			 sayHello() {
			   }                        }
			 angular.forEach(items, function(item) {
		  models.push(new Person(item));
		});
		console.log("models: ", models);
		return models;
	  }
	}
  });
  return res;
});

app.controller('MainCtrl', function($scope, demo) {
  demo.query()
	.$promise.then(function (data) {
	  $scope.names = data;

	});
});

Código HTML:

<!DOCTYPE html>
<html ng-app="plunker">

  <head>
    <meta charset="utf-8" />
    <title>AngularJS Plunker</title>
    <link rel="stylesheet" href="style.css" />
    <script data-require="angular.js@1.3.x" src="https://code.angularjs.org/1.3.14/angular.js" data-semver="1.3.14"></script>
    <script data-require="angular-resource@1.3.x" data-semver="1.3.14" src="http://code.angularjs.org/1.3.14/angular-resource.js"></script>

    <script src="app.js"></script>
  </head>
<body ng-controller="MainCtrl">
  Hello.
  <ul>
    <li ng-repeat="n in names">
      {{n.name}}
    </li>
  </ul>
</body>
</html>

Es una herramienta poderosa y útil para los desarrolladores, que simplifica el proceso de consulta de datos del servidor.

Se usa más comúnmente para operaciones CRUD en API RESTful, pero también se puede usar para recuperar datos de cualquier API.

El principal beneficio de AngularJS $resource es que ahorra tiempo y facilita la codificación al reducir la necesidad de escribir código repetitivo.

Haga clic aquí para ver la demostración en vivo del código como se mencionó anteriormente.

Muhammad Adil avatar Muhammad Adil avatar

Muhammad Adil is a seasoned programmer and writer who has experience in various fields. He has been programming for over 5 years and have always loved the thrill of solving complex problems. He has skilled in PHP, Python, C++, Java, JavaScript, Ruby on Rails, AngularJS, ReactJS, HTML5 and CSS3. He enjoys putting his experience and knowledge into words.

Facebook