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
)?
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.
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.
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.
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".
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'
};
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.
Vous pouvez essayer restful.js , un client RESTful indépendant de la structure, utilisant une syntaxe similaire à celle de Restangular.
Dojo fait, par exemple via JsonRestStore, voir http://www.sitepen.com/blog/2008/06/13/restful-json-dojo-data/ .
Vous pouvez utiliser http://adodson.com/hello.js/ qui a