JavaScript: Lernen wie man RESTful APIs konsumiert

8

Ich habe JS seit einigen Jahren programmiert und lerne jetzt mehr. Viele Arbeitgeber fragen nach "Wissen über REST-APIs" oder "Erfahrung mit RESTful-Diensten".

Ich kenne die Grundlagen von AJAX, sowohl in nativem JS als auch in jQuery. Ich habe ein gutes Stück auf REST geschaut, sowohl auf SO als auch im Web. Es scheint eine Menge Informationen darüber zu geben, wie man RESTful-APIs serverseitig mit JAVA, C # usw. erstellen kann, aber wenig darüber, wie man mit JavaScript auf diese Dienste zugreifen kann.

Hier sind Fragen:

  1. Ist das "konsumieren von RESTful-Diensten" eine andere Art zu sagen "Daten von einem Server mit AJAX holen" oder etwas ganz anderes?

  2. Wenn es etwas anderes ist, wo gibt es einige gute Tutorials zum Thema?

  3. Sobald ich die Grundlagen durchgearbeitet habe, wo finde ich RESTful APIs im Web zum konsumieren?

joe schmoe 12.10.2014, 23:04
quelle

2 Antworten

9
  
    

Ist "RESTful Services konsumieren" eine andere Art zu sagen "Daten von einem Server mit AJAX" oder etwas ganz anderes?

  

Nein, ganz und gar nicht, aber Sie könnten sicherlich Ihre eigene REST-API mit AJAX konsumieren. Ajax bedeutet typischerweise nur xmlHttpRequest , was inhärent ein Webbrowser-Konzept ist. Eine RESTful-API ähnelt eher einer Service-Schnittstelle. In vielerlei Hinsicht ist es ein Web-Service, aber ohne die Komplexität von SOAP.

Im Wesentlichen ist REST eine Möglichkeit, eine Transaktion oder Abfrage über HTTP auszudrücken, indem Verben und Substantive verwendet werden. Zum Beispiel, um Informationen zu erhalten, verwenden Sie ... warten Sie darauf ... GET! Um Informationen zu setzen, verwenden Sie PUT (oder POST, die Tutorials unten erklären den Unterschied). Und um etwas zu löschen, verwenden Sie DELETE. Es ist ziemlich nett. Es liest sich fast wie ein Satz über HTTP:

%Vor%

Sie können raten, was diese tun würden.

Da dies nur HTTP-Anfragen sind, können diese oft mit AJAX konsumiert werden, dies ist jedoch nicht notwendig. Tatsächlich finde ich REST-APIs nützlicher, um Dienste oder Daten auch für andere Anwendungen verfügbar zu machen, genau wie bei einem Web-Service.

  
    

Wenn es etwas anderes ist, wo gibt es einige gute Tutorials zum Thema?

  

Aus zwei Gründen ist es schwierig, ein gutes Tutorial zum Thema REST-konforme Dienste zu geben:

  1. Jeder Service ist anders.
  2. Es hängt davon ab, in welcher Sprache / Plattform Sie arbeiten.

Bret's Antwort erwähnt ein paar gute Tutorials.

Hier ist eine SO-Antwort, die zeigt, wie man REST direkt in Java konsumiert: How REST in Java konsumieren

Hier ist ein praktisches Tutorial, wie man eine RESTful-API unter Verwendung der JAX-RS-API in Java erstellt und dann zeigt, wie man es konsumiert: Ссылка

Ich hatte auch mit dem REST-Kunden von Jersey guten Erfolg. Ihre REST (JAX-RS) -Server-Software ist (meiner Meinung nach) ein königlicher Schmerz, aber ihr Client ist ziemlich glatt.

Ich habe im letzten Frühjahr in Java eine einfache Proof-of-Concept ToDo-Liste REST API geschrieben, und die Integrationstests zeigen, dass der Jersey-Client die API für Testzwecke nutzt.

Zypern

Ich bin auch ein Fan des Unirest-Clients , der ein REST-Client ist, der in mehrere Sprachen mit einer ähnlichen Oberfläche übersetzt wurde. Sie haben eine Objective-C-Version, eine Java-Version, eine JavaScript / node.js-Version, eine .NET-Version, usw.

Wenn ein Arbeitgeber nach Erfahrungen mit dem Konsum von REST-APIs sucht, möchte er wahrscheinlich fünf Dinge:

  1. Verstehen Sie die grundlegende Semantik des Datenaustausches über HTTP mit den verschiedenen Methoden und den dazugehörigen Entwurfsmustern, Namenskonventionen usw.?
  2. Erkennen Sie die De-facto-Standards für die Zuordnung von CRUD-Operationen zu HTTP-Anforderungen (z. B. GET /resources zum Auflisten aller Ressourcen, POST /resources zum Erstellen einer neuen Ressource, PUT /resources/x zum Aktualisieren der Ressource X usw.)? / li>
  3. Kennen Sie die verschiedenen HTTP-Antwortcodes und wann / wie werden sie verwendet? Wie können Sie immer davon ausgehen, dass eine erfolgreiche Antwort einen Statuscode von 200 ergibt? Wenn Sie eine neue Ressource erstellen, gibt es einen anderen häufig verwendeten Statuscode (ja, gibt es)?
  4. Haben Sie tatsächlich einen Code geschrieben, um einen bestehenden Service zu nutzen?
  5. Können Sie einen Dienst einfach testen? Verwenden Sie beispielsweise curl , um eine HTTP-Anforderung sehr genau zu erstellen.

Und ein Bonus, aber die meisten Leute haben kein gutes Verständnis davon (ich habe Mühe, seine Nützlichkeit persönlich zu verstehen), ist Hyper-Media für die Versionsverwaltung, indem ich mit dem Accepts -Header schlage.

  
    

Sobald ich die Grundlagen durchgearbeitet habe, wo finde ich RESTful APIs im Web zum konsumieren?

  

Alles vorbei! Jeder hat einen! Twitter, Facebook, Twilio, Streifen, Google, Edmodo, Amazon. Ich könnte ewig weitermachen. In der IaaS-Welt bieten Amazon Web Services und Rackspace Cloud RESTful-APIs zur Verwaltung Ihrer Cloud-Infrastruktur. Zum Beispiel kann ich eine HTTP-POST-Anfrage an eine URL senden, die meine Gruppe von Servern darstellt, und boom, ein neuer Server (virtuelle Maschine) wird mir bereitgestellt.

Ссылка

Ссылка

Es gibt so viele, dass es sogar Hub-Dienste gibt, die den Verbrauchern helfen, APIs und Provider zu finden, um sie zu veröffentlichen, wie Mashape und < A Mashery , obwohl letzteres scheint sich mehr auf Anbieter als auf Verbraucher zu konzentrieren, von ihrer Website zu urteilen.

Das github-Projekt, das ich vorher gepostet habe, greift mit meinem Proof-of-Concept auf eine REST-API von Searchly und Twilio zu, damit ich nach Aufgaben suchen kann, und wenn eine als abgeschlossen markiert ist, sende mir erneut eine SMS von HTTP-Anfragen. Ich habe jedoch die Client-Bibliotheken dieser Anbieter verwendet, anstatt direkte HTTP-Bibliotheken zu verwenden, um den Code schlanker und fokussierter zu machen, ohne sich um alle HTTP-Installationen kümmern zu müssen.

    
Brandon 13.10.2014 02:04
quelle
2

Für Ihre Zwecke ist das Treffen einer erholsamen API sehr ähnlich der Interaktion mit einem Server über reguläres AJAX. Der Unterschied besteht darin, dass diese API dem Restful-Modell entspricht, bei dem verschiedene CRUD-ähnliche Operationen dem speziellen Muster der Verwendung bestimmter HTTP-Verben [GET, PUT, POST, DELETE] und auch dem Pfadmodell des Verweises auf eine Entität entsprechen.

Schau es dir an:

Ссылка

Wenn Sie mit einer entspannten API spielen möchten, gibt es ein paar Frameworks, auf denen Sie in wenigen Minuten ein Spin-up machen können.

Ich würde Sinatra wahrscheinlich dafür benutzen; obwohl es viele Möglichkeiten gibt:

Ссылка

Googeln Sie einfach "restful api example [Ihre serverseitige Sprache der Wahl]; da ist eine Menge Material da draußen.

In Kürze sollten Sie untersuchen, wie Cross-Server-Side-Scripting mit einer erholsamen API durchgeführt wird und wie Sie JSONP verwenden:

Ссылка

    
Bret Weinraub 12.10.2014 23:14
quelle

Tags und Links