Risposte:
Non hai davvero bisogno di un client specifico, è abbastanza semplice con la maggior parte delle librerie. Ad esempio in jQuery puoi semplicemente chiamare la $.ajax
funzione generica con il tipo di richiesta che vuoi fare:
$.ajax({
url: 'http://example.com/',
type: 'PUT',
data: 'ID=1&Name=John&Age=10', // or $('#myform').serializeArray()
success: function() { alert('PUT completed'); }
});
Puoi sostituire PUT
con GET
/ POST
/ DELETE
o qualsiasi altra cosa.
PUT
e DELETE
metodi se vuoi scorciatoie.
success
callback accetta un data
argomento, che conterrà la risposta.
Anche se potresti voler utilizzare una libreria, come l'eccellente jQuery , non è necessario: tutti i browser moderni supportano molto bene HTTP nelle loro implementazioni JavaScript tramite l' API XMLHttpRequest , che, nonostante il suo nome, non è limitata alle rappresentazioni XML .
Ecco un esempio di creazione di una richiesta PUT HTTP sincrona in 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 + ".");
Questo esempio è sincrono perché lo rende un po 'più semplice, ma è abbastanza facile effettuare richieste asincrone anche utilizzando questa API.
Ci sono migliaia di pagine e articoli sul web sull'apprendimento di XmlHttpRequest - di solito usano il termine AJAX - sfortunatamente non posso consigliarne uno specifico. Tuttavia, potresti trovare utile questo riferimento .
Puoi usare questo plugin jQuery che ho appena creato :) https://github.com/jpillora/jquery.rest/
Supporta operazioni CRUD di base, risorse nidificate, autenticazione di 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 !' );
});
Se trovi bug o desideri nuove funzionalità, pubblicali nella pagina "Problemi" dei repository
Per riferimento voglio aggiungere su ExtJS, come spiegato nel Manuale: Servizi Web RESTful . In breve, usa il metodo per specificare GET, POST, PUT, DELETE. Esempio:
Ext.Ajax.request({
url: '/articles/restful-web-services',
method: 'PUT',
params: {
author: 'Patrick Donelan',
subject: 'RESTful Web Services are easy with Ext!'
}
});
Se l'intestazione Accetta è necessaria, può essere impostata come predefinita per tutte le richieste:
Ext.Ajax.defaultHeaders = {
'Accept': 'application/json'
};
Puoi anche utilizzare framework mvc come Backbone.js che forniranno un modello javascript dei dati. Le modifiche al modello verranno tradotte in chiamate REST.
Puoi provare restful.js , un client RESTful indipendente dal framework, utilizzando una sintassi simile al popolare Restangular.
Dojo lo fa, ad esempio tramite JsonRestStore, vedere http://www.sitepen.com/blog/2008/06/13/restful-json-dojo-data/ .
Puoi usare http://adodson.com/hello.js/ che ha