Yanıtlar:
Gerçekten belirli bir istemciye ihtiyacınız yok, çoğu kütüphanede oldukça basit. Örneğin jQuery'de $.ajax
, yapmak istediğiniz istek türü ile genel işlevi çağırabilirsiniz :
$.ajax({
url: 'http://example.com/',
type: 'PUT',
data: 'ID=1&Name=John&Age=10', // or $('#myform').serializeArray()
success: function() { alert('PUT completed'); }
});
/ / Veya her neyse PUT
ile değiştirebilirsiniz .GET
POST
DELETE
PUT
ve DELETE
yöntemlerinizi oluşturmak çok basit .
success
geri arama data
, yanıtı içerecek bir argüman alır .
Mükemmel jQuery gibi bir kitaplık kullanmak isteyebilirsiniz ancak buna gerek yoktur: tüm modern tarayıcılar , ismine rağmen XML temsilleriyle sınırlı olmayan XMLHttpRequest API aracılığıyla JavaScript uygulamalarında HTTP'yi çok iyi destekler. .
Aşağıda, JavaScript'te eşzamanlı bir HTTP PUT isteği yapmaya bir örnek verilmiştir:
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 + ".");
Bu örnek eşzamanlıdır çünkü bu işi biraz kolaylaştırır, ancak bu API'yi kullanarak eşzamansız isteklerde bulunmak da oldukça kolaydır.
Web'de XmlHttpRequest'i öğrenmekle ilgili binlerce sayfa ve makale var - genellikle AJAX terimini kullanıyorlar - maalesef belirli bir tanesini öneremiyorum. Yine de bu referansı kullanışlı bulabilirsiniz .
Az önce yaptığım bu jQuery eklentisini kullanabilirsiniz :) https://github.com/jpillora/jquery.rest/
Temel CRUD işlemlerini, iç içe geçmiş kaynakları, temel yetkilendirmeyi destekler
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 !' );
});
Hatalar bulursanız veya yeni özellikler istiyorsanız, lütfen bunları havuzların 'Sorunlar' sayfasına gönderin.
jQuery, URI parametre şablonlarının REST stiline sahip JSON-REST eklentisine sahiptir. Kullanımın açıklamasına göre followin: $.Read("/{b}/{a}", { a:'foo', b:'bar', c:3 })
"/ bar / foo? C = 3" için GET olur.
Referans için, Manual: RESTful Web Services'da açıklandığı gibi ExtJS hakkında eklemek istiyorum . Kısaca, GET, POST, PUT, DELETE'i belirtmek için yöntemi kullanın. Misal:
Ext.Ajax.request({
url: '/articles/restful-web-services',
method: 'PUT',
params: {
author: 'Patrick Donelan',
subject: 'RESTful Web Services are easy with Ext!'
}
});
Accept başlığı gerekliyse, tüm istekler için varsayılan olarak ayarlanabilir:
Ext.Ajax.defaultHeaders = {
'Accept': 'application/json'
};
Verilerin bir javascript modelini sağlayacak Backbone.js gibi mvc çerçevelerini de kullanabilirsiniz. Modelde yapılan değişiklikler REST çağrılarına çevrilecektir.
Popüler Restangular'a benzer bir sözdizimi kullanarak çerçeve agnostik bir RESTful istemcisi olan restful.js'yi deneyebilirsiniz .
Dojo, örneğin JsonRestStore aracılığıyla yapar, bkz. Http://www.sitepen.com/blog/2008/06/13/restful-json-dojo-data/ .
Sahip olan http://adodson.com/hello.js/'yi kullanabilirsiniz.