web-dev-qa-db-fra.com

JavaScript REST bibliothèque client

Existe-t-il une bibliothèque JavaScript qui me permet d'effectuer toutes les opérations REST telles que (GET, POST, PUT et DELETE sur HTTP ou HTTPS)?

116
Amir Arad

Vous n'avez pas vraiment besoin d'un client spécifique, c'est assez simple avec la plupart des bibliothèques. Par exemple, dans jQuery, vous pouvez simplement appeler la fonction générique $.ajax avec le type de demande que vous souhaitez effectuer:

$.ajax({
    url: 'http://example.com/',
    type: 'PUT',
    data: 'ID=1&Name=John&Age=10', // or $('#myform').serializeArray()
    success: function() { alert('PUT completed'); }
});

Vous pouvez remplacer PUT par GET/POST/DELETE ou autre.

139
aleemb

Bien que vous souhaitiez utiliser une bibliothèque, telle que l'excellent jQuery , vous n'êtes pas obligé de le faire: tous les navigateurs modernes supportent très bien HTTP dans leurs implémentations JavaScript via le XMLHttpRequest API =, qui, malgré son nom, ne se limite pas aux représentations XML.

Voici un exemple de création d'une demande HTTP PUT synchrone en JavaScript:

var url = "http://Host/path/to/resource";
var representationOfDesiredState = "The cheese is old and moldy, where is the bathroom?";

var client = new XMLHttpRequest();

client.open("PUT", url, false);

client.setRequestHeader("Content-Type", "text/plain");

client.send(representationOfDesiredState);

if (client.status == 200)
    alert("The request succeeded!\n\nThe response representation was:\n\n" + client.responseText)
else
    alert("The request did not succeed!\n\nThe response status was: " + client.status + " " + client.statusText + ".");

Cet exemple est synchrone car cela facilite un peu les choses, mais il est également assez facile de faire des requêtes asynchrones à l'aide de cette API.

Il existe des milliers de pages et d'articles sur le Web sur l'apprentissage de XmlHttpRequest - ils utilisent généralement le terme AJAX - malheureusement, je ne peux pas en recommander un en particulier. Vous pouvez trouver cette référence pratique cependant.

70
Avi Flax

Vous pouvez utiliser ce plugin jQuery que je viens de faire :) https://github.com/jpillora/jquery.rest/

Prend en charge les opérations de base CRUD, les ressources imbriquées, l’authentification de base

  var client = new $.RestClient('/api/rest/');

  client.add('foo');
  client.foo.add('baz');
  client.add('bar');

  client.foo.create({a:21,b:42});
  // POST /api/rest/foo/ (with data a=21 and b=42)
  client.foo.read();
  // GET /api/rest/foo/
  client.foo.read("42");
  // GET /api/rest/foo/42/
  client.foo.update("42");
  // PUT /api/rest/foo/42/
  client.foo.delete("42");
  // DELETE /api/rest/foo/42/

  //RESULTS USE '$.Deferred'
  client.foo.read().success(function(foos) {
    alert('Hooray ! I have ' + foos.length + 'foos !' );
  });

Si vous trouvez des bogues ou souhaitez de nouvelles fonctionnalités, postez-les dans la page "Problèmes" du référentiel.

11
jpillora

jQuery a le plug-in JSON-REST avec le style REST des modèles de paramètres d'URI. Selon sa description, l'exemple d'utilisation est le suivant: $.Read("/{b}/{a}", { a:'foo', b:'bar', c:3 }) devient un GET pour "/ bar/foo? C = 3".

8
Volodymyr Frolov

Pour référence, je souhaite ajouter environ ExtJS, comme expliqué dans Manual: RESTful Web Services . En bref, utilisez la méthode pour spécifier GET, POST, PUT, DELETE. Exemple:

Ext.Ajax.request({
    url: '/articles/restful-web-services',
    method: 'PUT',
    params: {
        author: 'Patrick Donelan',
        subject: 'RESTful Web Services are easy with Ext!'
    }
});

Si l'en-tête Accept est nécessaire, vous pouvez le définir par défaut pour toutes les demandes:

Ext.Ajax.defaultHeaders = {
    'Accept': 'application/json'
};
6
stivlo

Vous pouvez également utiliser des frameworks mvc tels que Backbone.js qui fourniront un modèle javascript des données. Les modifications apportées au modèle seront traduites en REST appels.

3
Stig Husby

Vous pouvez essayer restful.js , un client RESTful indépendant de la structure, utilisant une syntaxe similaire à celle de Restangular.

3

Dojo fait, par exemple via JsonRestStore, voir http://www.sitepen.com/blog/2008/06/13/restful-json-dojo-data/ .

1
Alex Martelli

Vous pouvez utiliser http://adodson.com/hello.js/ qui a

  1. Prise en charge des API de repos
  2. Prise en charge intégrée de nombreux sites google, facebook, dropbox
  3. Il prend en charge oAuth 1 et 2.
0
Alireza Fattahi