जावास्क्रिप्ट रेस्ट क्लाइंट लाइब्रेरी [बंद]


117

वहाँ एक JavaScript लाइब्रेरी जो मेरे जैसे (सभी बाकी कार्रवाई करने के लिए अनुमति देते हैं GET, POST, PUTऔर DELETEअधिक HTTPया HTTPS)?

जवाबों:


139

आपको वास्तव में एक विशिष्ट ग्राहक की आवश्यकता नहीं है, यह अधिकांश पुस्तकालयों के साथ काफी सरल है। उदाहरण के लिए jQuery में आप केवल $.ajaxउस प्रकार के अनुरोध के साथ जेनेरिक फ़ंक्शन को कॉल कर सकते हैं जिसे आप बनाना चाहते हैं:

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

आप / / या के PUTसाथ बदल सकते हैं ।GETPOSTDELETE


10
jQuery में GET और POST का उपयोग करने के लिए कुछ आसान शॉर्टकट तरीके भी शामिल हैं: api.jquery.com/category/ajax/shorthand-methods
Avi Flax

और @Avi Flax ने जो कहा, उस पर विस्तार करने के लिए, यदि आप शॉर्टकट चाहते हैं, तो अपना खुद का PUTऔर DELETEतरीके बनाना बहुत सरल है ।
zzzzBov

2
आप प्रतिक्रिया के शरीर को कैसे पुनः प्राप्त करते हैं? हेडर?
पेंटालिस सोपासाकिस

@PantelisSopasakis successकॉलबैक एक dataतर्क लेता है , जिसमें प्रतिक्रिया होगी।
आत्मासेकाह

6
तकनीकी रूप से, यह एक REST क्लाइंट नहीं है, यह एक HttpClient है। मैं एक ऐसी चीज की तलाश कर रहा हूं जो यह बताती है कि राज्य को चलाने के लिए लिंक संबंधों और मीडिया प्रकारों का ठीक से उपयोग कैसे करें। देखते रहेंगे ...
पीटर मैकएवॉय

71

जब आप एक पुस्तकालय का उपयोग करने की इच्छा कर सकते हैं, जैसे कि उत्कृष्ट jQuery , तो आपके पास नहीं है: सभी आधुनिक ब्राउज़र अपने जावास्क्रिप्ट कार्यान्वयन में HTTP को बहुत अच्छी तरह से XMLHttpRequest API के माध्यम से समर्थन करते हैं , जो कि इसके नाम के बावजूद, XML प्रतिनिधित्व तक सीमित नहीं है। ।

यहाँ जावास्क्रिप्ट में एक तुल्यकालिक HTTP PUT अनुरोध करने का एक उदाहरण दिया गया है:

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 + ".");

यह उदाहरण तुल्यकालिक है क्योंकि यह इसे थोड़ा आसान बनाता है, लेकिन इस एपीआई का उपयोग करके अतुल्यकालिक अनुरोध करना काफी आसान है।

XmlHttpRequest सीखने के बारे में वेब पर हजारों पृष्ठ और लेख हैं - वे आमतौर पर AJAX शब्द का उपयोग करते हैं - दुर्भाग्य से मैं एक विशिष्ट अनुशंसा नहीं कर सकता। आपको यह संदर्भ आसान लग सकता है ।


11

आप इस jQuery प्लगइन का उपयोग कर सकते हैं जिसे मैंने अभी बनाया है :) https://github.com/jpillora/jquery.rest/

मूल CRUD संचालन, नेस्टेड संसाधन, मूल स्थिति का समर्थन करता है

  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 !' );
  });

यदि आप बग ढूंढते हैं या नई सुविधाएँ चाहते हैं, तो उन्हें रिपॉजिटरी 'इश्यूज़' पेज में पोस्ट करें


2
मुझे पसंद है कि आपने इसे कितना सरल बनाया है। यह अतिरिक्त विकल्पों का समर्थन करने के लिए प्रकट होता है जब आपको उनकी आवश्यकता होती है लेकिन आप उन्हें रास्ते से हटाते हैं।
1922 में स्ट्राडास

वाह। आपने इतने सारे ओपन सोर्स शेयर किए। आदर करना।
वॉनसुक

8

jQuery में URI पैरामीटर टेम्प्लेट की REST शैली के साथ JSON-REST प्लगइन है। इसके वर्णन के अनुसार उपयोग करने का उदाहरण $.Read("/{b}/{a}", { a:'foo', b:'bar', c:3 })अनुवर्ती है: "/ बार / फू? सी = 3" के लिए एक GET बन जाता है।


6

संदर्भ के लिए मैं एक्सटीजेएस के बारे में जोड़ना चाहता हूं, जैसा कि मैनुअल में बताया गया है: रेस्टफुल वेब सर्विसेज । संक्षेप में, GET, POST, PUT, DELETE निर्दिष्ट करने के लिए विधि का उपयोग करें। उदाहरण:

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

यदि हेडर स्वीकार करना आवश्यक है, तो इसे सभी अनुरोधों के लिए डिफ़ॉल्ट के रूप में सेट किया जा सकता है:

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

3

आप Backbone.js की तरह mvc चौखटे का भी उपयोग कर सकते हैं जो डेटा का एक जावास्क्रिप्ट मॉडल प्रदान करेगा। मॉडल में परिवर्तन REST कॉल में अनुवादित किया जाएगा।




0

आप उपयोग कर सकते हैं http://adodson.com/hello.js/ है जो

  1. बाकी एपीआई सपोर्ट
  2. कई साइटों के लिए समर्थन में निर्मित गूगल, फेसबुक, ड्रॉपबॉक्स
  3. यह oAuth 1 और 2 को सपोर्ट करता है।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.