JavaScript REST Client Library [geschlossen]

117

Gibt es eine JavaScript - Bibliothek , die mir erlauben , alles andere Operation auszuführen wie ( GET, POST, PUTund DELETEüber HTTPoder HTTPS)?

Amir Arad
quelle

Antworten:

139

Sie brauchen nicht wirklich einen bestimmten Client, es ist mit den meisten Bibliotheken ziemlich einfach. In jQuery können Sie beispielsweise einfach die generische $.ajaxFunktion mit der Art der Anforderung aufrufen, die Sie stellen möchten:

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

Sie können ersetzen PUTmit GET/ POST/ DELETEoder was auch immer.

Aleemb
quelle
10
jQuery enthält auch einige praktische Verknüpfungsmethoden für die Verwendung von GET und POST: api.jquery.com/category/ajax/shorthand-methods
Avi Flax
Um das zu erweitern, was @Avi Flax gesagt hat, ist es sehr einfach, eigene Methoden PUTund DELETEMethoden zu erstellen , wenn Sie Verknüpfungen wünschen.
zzzzBov
2
Wie können Sie den Text der Antwort abrufen? die Überschriften?
Pantelis Sopasakis
@PantelisSopasakis der successRückruf nimmt ein dataArgument an, das die Antwort enthält.
Soulseekah
6
Technisch gesehen ist dies kein REST-Client, sondern ein HttpClient. Ich suche nach etwas, das zeigt, wie Link-Relationen und Medientypen richtig verwendet werden, um den Status zu steuern. Ich werde weiter suchen ...
Peter McEvoy
71

Möglicherweise möchten Sie eine Bibliothek wie die hervorragende jQuery verwenden , müssen dies jedoch nicht: Alle modernen Browser unterstützen HTTP in ihren JavaScript-Implementierungen sehr gut über die XMLHttpRequest-API , die trotz ihres Namens nicht auf XML-Darstellungen beschränkt ist .

Hier ist ein Beispiel für eine synchrone HTTP-PUT-Anforderung 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 + ".");

Dieses Beispiel ist synchron, da dies die Arbeit etwas vereinfacht. Es ist jedoch auch recht einfach, asynchrone Anforderungen mithilfe dieser API zu stellen.

Es gibt Tausende von Seiten und Artikeln im Web über das Erlernen von XmlHttpRequest - sie verwenden normalerweise den Begriff AJAX - leider kann ich keinen bestimmten empfehlen. Sie können diese Referenz jedoch nützlich finden.

Avi Flachs
quelle
11

Sie können dieses jQuery-Plugin verwenden, das ich gerade erstellt habe :) https://github.com/jpillora/jquery.rest/

Unterstützt grundlegende CRUD-Operationen, verschachtelte Ressourcen und grundlegende Authentifizierung

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

Wenn Sie Fehler finden oder neue Funktionen wünschen, veröffentlichen Sie diese bitte auf der Seite "Probleme" des Repositorys

jpillora
quelle
2
Mir gefällt, wie einfach Sie es gemacht haben. Es scheint zusätzliche Optionen zu unterstützen, wenn Sie sie benötigen, aber Sie halten sie aus dem Weg.
Stradas
Beeindruckend. Sie haben so viele Open Source geteilt. Respekt.
Wonsuc
8

jQuery verfügt über ein JSON-REST- Plugin mit REST-Stil von URI-Parametervorlagen. Entsprechend seiner Beschreibung ist das folgende Verwendungsbeispiel das Folgende: $.Read("/{b}/{a}", { a:'foo', b:'bar', c:3 })wird ein GET zu "/ bar / foo? C = 3".

Volodymyr Frolov
quelle
6

Als Referenz möchte ich ExtJS hinzufügen, wie im Handbuch: RESTful Web Services erläutert . Kurz gesagt, verwenden Sie die Methode, um GET, POST, PUT, DELETE anzugeben. Beispiel:

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

Wenn der Accept-Header erforderlich ist, kann er für alle Anforderungen als Standard festgelegt werden:

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

Sie können auch MVC-Frameworks wie Backbone.js verwenden, die ein Javascript-Modell der Daten bereitstellen. Änderungen am Modell werden in REST-Aufrufe übersetzt.

Stig Husby
quelle
0

Sie können http://adodson.com/hello.js/ verwenden, das hat

  1. Rest API-Unterstützung
  2. Eingebaute Unterstützung für viele Websites Google, Facebook, Dropbox
  3. Es unterstützt die Unterstützung von oAuth 1 und 2.
Alireza Fattahi
quelle