(MUSIK)
Lass mich dich kurz ausruhen.
Hab dich da!
Was ich sagen wollte, war,
lassen Sie mich Ihnen einen kurzen Überblick über den repräsentativen Staatstransfer geben.
Was genau ist Ruhe?
Wie nutzen wir es in unserer Winkelapplikation und
wie nutzen wir dies für die Kommunikation mit dem Server?
Wie unterstützt ein Server die REST-API und
wie greifen wir von unserer Angular-Anwendung auf die REST-API zu?
Lassen Sie uns darüber in dieser Lektion ein wenig mehr sprechen.
In diesem speziellen Vortrag werde ich Ihnen einen kurzen Überblick über REST geben.
Ich bin sicher, dass Sie den Begriff Web Services
in der IT-Welt sehr oft gehört haben.
Was genau sind Webdienste?
Web-Services sind eine Möglichkeit, Systeme zu entwerfen, um die Interoperabilität zwischen
Systemen zu unterstützen, die über ein Netzwerk verbunden sind, wie das Internet, wie wir heute sehen.
Dies ist, was wir als serviceorientierte Architektur bezeichnen.
Nun, was das bedeutet, ist, dass Sie eine standardisierte Methode für zwei Computer
, die mit dem Internet verbunden sind, bieten, um miteinander kommunizieren zu können.
Ihre Anwendungslayoutebene für
Datenbankanwendungen, die offene Standards verwenden.
Ich habe dort viel Jargon benutzt.
Lassen Sie uns versuchen, sie zusammenzureißen und
ein wenig darüber in diesem Vortrag zu verstehen.
Zwei gängige Ansätze, die zur Unterstützung von Webdiensten verwendet werden, sind SOAP,
die einfachen Objektzugriffsprotokoll-basierten
Webdienste, die die Beschreibungssprache für Webdienste verwenden, um
anzugeben, wie die beiden Endpunkte miteinander kommunizieren.
Und in der Regel basiert Soap auf der Verwendung von XML als
Format für die Nachrichten, die zwischen den beiden Endpunkten ausgetauscht werden.
Der Präsentationsstatus Transfer oder Rest verwendet auch Webstandards, aber der Austausch
von Daten zwischen den beiden Endpunkten könnte entweder XML oder zunehmend sein.
Verwenden von JSON als Format
Der REST-Weg der Interoperabilität ist einfacher im Vergleich zu SOAP, und
daher hat REST eine viel breitere Bereitstellung in den übrig gebliebenen Webdiensten gefunden.
In der Regel wird die Client-Server-Kommunikation mithilfe von REST erleichtert,
wobei der Server die REST-API unterstützt und der Client dann seine
REST-API-Endpunkte aufrufen kann, um Informationen zu erhalten oder Informationen auf den Server hochzuladen.
Wieder habe ich das Wort erwähnt, rufen Sie diesen REST-API-Endpunkt auf.
Das sind also ein paar Begriffe, die ich benutzt habe.
Lassen Sie uns einige davon in den nächsten Folien klären.
Repräsentative Zustandsübertragung ist ein Stil der Software-Architektur, die
speziell für verteilte Hypermedia über das World Wide Web entwickelt wurde.
Nun wurde dies zuerst von Roy Fielding in seiner Dissertation vorgestellt.
Nun, das ist eine dieser Doktorarbeiten, die tatsächlich
etwas Nützliches für die Welt produziert hat.
Das hat also wieder viel Traktion in der Web-Services-Welt gefunden.
Dies ist eine Sammlung von Netzwerkprinzipien, die beschreiben, wie Ressourcen
auf Servern verfügbar gemacht werden können. Auf diese Ressourcen kann von Clients aus zugegriffen werden,
indem die Ressourcen mithilfe von REST-API-Endpunkten identifiziert werden.
Innerhalb von Representational State Transfer gibt es vier grundlegende Gestaltungsprinzipien.
In erster Linie basiert REST auf dem HTTP-Protokoll.
So verwendet es alle HTTP-Methoden, die wir bereits in der vorherigen Lektion gesehen haben.
Zweitens ist REST so konzipiert, dass er zustandslos ist, was bedeutet, dass der Server
nach Abschluss der Kommunikation keine Informationen über den Status speichert.
Wenn also ein Server die Anforderung empfängt, antwortet der Server und
danach erinnert er sich an nichts mehr über diese
Konversation zwischen dem Client und dem Server.
Drittens besteht die REST-Methode zur Bereitstellung von Ressourcen darin,
eine Verzeichnisstruktur wie URLs einheitliche Ressourcenlocator-URLs verfügbar zu machen.
Und viertens ist ihr Format für den Datenaustausch typischerweise JSON oder
XML oder beides, die mit REST unterstützt werden können.
Eine der Motivationen für den Anstieg, der REST als eine Möglichkeit zur Unterstützung von
Webdiensten vorschlägt, ist, dass es all das erfasst, was gut von all dem World Wide Web ist.
Und das machte das Word Wide Web erfolgreich.
Die Verwendung von Uniform Resource Indicators oder Uniform Resource Locators, URLs, mit
denen Sie Ressourcen adressieren können, indem Sie sie als URL angeben,
wobei die zweite ein Protokoll ist, das über das HTTP-Protokoll verfügt.
HTTP hat bereits eine breite Bereitstellung im Internet gefunden.
Drittens, der Anforderungsantwort Zyklus, für den HTTP bekannt ist.
Sie senden also eine Anfrage, der Server empfängt Ihre Anfrage, verarbeitet die Anfrage,
sendet die Antwort an die Anfrage, und dieser Client empfängt die Antwort,
wirkt darauf und generiert möglicherweise weitere Anforderungen.
Also, dieser Ansatz des Request Response Zyklus ist sehr gut etabliert mit HTTP
und dem weltweiten Web The HTTP-Protokoll, wie wir zuvor gesehen haben,
werden wir alle verschiedenen Verben verwenden, die HTTP bietet.
Insbesondere das Tor setzen Post löschen.
Für die Möglichkeit, Operationen anzugeben, die
auf Ressourcen ausgeführt werden, die auf der Serverseite gespeichert sind.
Wenn Sie beispielsweise eine HTTP GET-Anforderung ausführen, fragen Sie nach
dem Server, um die Quelle zurückzugeben.
Wenn Sie eine POST-Anforderung ausführen, bitten Sie den Server, eine neue Ressource zu erstellen.
Wenn Sie eine PUT-Anforderung ausführen, bitten Sie den Server,
eine vorhandene Ressource zu aktualisieren, und wenn Sie eine Löschanforderung ausgeben, bitten Sie
den Server, die Ressource zu löschen, die durch diese bestimmte URL identifiziert wird.
Außerdem versucht es, die Idempotenz zu bewahren.
Einige Operationen, wenn sie
auch wiederholt ausgeführt werden, verursachen keine Änderung des Zustands.
Einige andere Operationen, wenn Sie sie nacheinander tun,
können sie eine Änderung des Zustands verursachen.
Sie müssen also vorsichtig sein, welche Operationen
ohne schädliche Folgen wiederholt werden können.
Und die müssen sehr sorgfältig gemacht werden.
In der REST-Welt hört man oft Leute, die über Substantive,
Verben und Darstellungen sprechen.
Jetzt werden wir jede dieser Folien in den nächsten Folien ein wenig detaillierter klären.
Substantive, insbesondere, sie sind voll von Ressourcen, und
diese Ressourcen werden in der Regel durch ihre URLs identifiziert, und diese sind nicht eingeschränkt.
Verben sind eingeschränkt und diese angegebenen Aktionen auf die Ressourcen durchgeführt werden.
Und die Präsentationen, wie wir sehen, wenn
die Informationen vom Server zum Client oder
vom Client zum Server übertragen werden müssen, wie Sie die Informationen codieren.
In der Regel entweder mit JSON oder mit XML.
Ressource ist die Schlüsselabstraktion, die REST umgeht
, so dass Informationen in der Ressource abstrahiert werden.
Und die Ressource wird identifiziert, indem sie mithilfe eines URI angegeben wird.
So können alle Informationen, die gekapselt und
zur Verfügung gestellt werden können, als Ressource identifiziert werden.
Eine Information wie das aktuelle Wetter in Hong Kong könnte eine Ressource sein,
ein Bild könnte eine Ressource sein.
Eine Aktienkurs-Information könnte eine Ressource sein, und so weiter.
Was auch immer Sie als eine Information definieren, an der ein Kunde
interessiert sein könnte, kann als Ressource identifiziert werden.
Sie können sogar Ressourcen als Sammlung von Ressourcen behandeln
, die dieser Server möglicherweise an diesen Client sendet.
Ein Beispiel dafür, wie Sie Ressourcen benennen, wird hier veranschaulicht.
Daher verwenden wir URIs, um die Quelle zu identifizieren.
Ein schnelles Lesen der Spezifikation oder der URLs hier
ermöglicht Ihnen leicht zu verstehen, worauf wir verweisen, indem Sie diese URLs verwenden.
So zum Beispiel, etwas, das mit Gerichten/ endet, gehen
Sie automatisch davon aus, dass sich dies auf eine Sammlung von Gerichten bezieht.
Wie Gerichte/123 zum Beispiel
könnte Gericht Nummer 123 bedeuten, in diesem Fall und so weiter.
Es ist also sehr einfach zu sagen, dass Sie eine Sammlung von Ressourcen angeben und in der
Lage sein können, sie als Sammlung zu identifizieren und sie dann als Sammlung herunterzuladen.
Oder Sie können eine einzelne Ressource identifizieren und
sagen, dass Sie diese bestimmte Ressource möchten.
Jetzt können diese Ressourcen in einer Hierarchie organisiert werden
, die Spezifikation dieses URI.
Wenn Sie also den Pfad durchlaufen,
gehen Sie von der allgemeineren zu der spezifischeren Ressource.
Diese Verzeichnisstruktur ermöglicht es Ihnen, die Ressourcen, die
Sie von Ihrer Service-Site bereitstellen, sehr einfach zu identifizieren.
Der zweite Teil der REST-API sind die Wörter.
Insbesondere interessieren wir uns für die 4 Verben von HTTP zu bekommen, zu
setzen, zu posten und zu löschen.
In diesem Fall werden diese Verben Nickerchen auf Aktionen, die wir
auf der Ressource auf der Serverseite ausgeführt werden wollen.
GetT würde bedeuten, dass Sie einen Lesevorgang für die Ressource ausführen möchten, was bedeutet,
dass ein Client, der eine Get-Anforderung sendet, dem Server angibt,
dass er diese Präsentation der Datenquelle vom Serverstandort zum Clientstandort abrufen möchte.
POST bedeutet, dass Sie eine neue Ressource erstellen möchten und dann werden Sie es tun.
Geben Sie die Details der Ressource in der Darstellung an, wird jedoch für
die Angabe der Ressource verwendet.
Dann senden Sie die Informationen an die Serverseite,
damit der Server die Ressource in Ihrem Namen erstellt.
Ein PUT wäre die Änderung von Ressourcen, und
Löschen, wie Sie es erwarten würden, ist das Löschen der Quellen.
Wie Sie sehen können,
werden die vier Verben get, post, put und delete den vier CRUD-Operationen zugeordnet, die Sie in
einer Datenbank ausführen können, die diese Ressourcen auf der Serverseite speichert.
Die Lese-, Erstellungs-, Aktualisierungs- und Löschvorgänge
Ausführend, ist das HTTP GET eine Möglichkeit der Angabe.
Sie möchten, dass die Informationen oder ihre Präsentation der Ressource
vom Serverstandort an den Client zurückgegeben werden.
Wenn Sie also eine GET-Anforderung an einen REST-API-Endpunkt ausgeben.
Sie fragen entweder nach einer Sammlung von Ressourcen, die von
Uri präsentiert werden, oder einer bestimmten Ressource, die durch die ID dieser
bestimmten Ressourcen identifiziert wird, die in der URL angegeben ist, so wie Sie in diesem Beispiel sehen,
wenn Sie Geschirr/452, Sie wollen sagen, dass Gericht Nummer 452,
mit der id 452 sollte an die Client-Seite zurückgegeben werden.
In ähnlicher Weise wird die Post-Operation, wie wir gesehen haben, verwendet, um die Ressource zu erstellen.
Wenn Sie also die Ressource erstellen,
wird der Inhalt der Beschreibung der Ressource in Form einer JSON-Darstellung oder einer XML-Darstellung vorliegen, und dies würde
im Hauptteil der Anforderungsnachricht enthalten, die an die Serverseite gesendet wird.
Daher erwartet eine Post-Operation eine Darstellung
der Ressource im JSON- oder XML-Format im Textkörper der Anforderungsnachricht.
Und der Server erhält eine solche Anforderungsnachricht, der Server erstellt diese
Ressource auf der Serverseite und gibt dann entweder eine Bestätigung oder
einen Fehler zurück, um anzuzeigen, dass die Ressourcenerstellung fehlgeschlagen ist.
In ähnlicher Weise hat es den Betrieb einfach verwendet, um eine Ressource zu aktualisieren.
Wenn Sie eine PUT-Operation auf einer Ressource auf der Serverseite ausführen, können Sie
die Änderung entweder zurücksenden, indem Sie nur die teilweise Änderung angeben
, die Sie auf die bestimmte Ressource im Textkörper der Antwortnachricht auswirken möchten.
Oder Sie können die vollständige Darstellung der Ressource
im Nachrichtentext senden, abhängig von der Anordnung zwischen dem Client und
dem Server erwartet der Server, dass die Informationen
im Hauptteil der Anforderungsnachricht weitergegeben werden.
DELETE-Vorgang, wie Sie erwarten, löscht die vorhandene Ressource.
Nun in diesem speziellen Fall wäre natürlich ein Löschvorgang, weil,
wenn Sie versuchen, eine Ressource zu löschen und die Ressource vorhanden ist, sie gelöscht wird.
Wenn Sie versuchen, eine nicht vorhandene Ressource zu löschen,
führt dies zu keiner weiteren Änderung auf der Serverseite
, außer dass der Server mit einer Fehlermeldung antwortet, die besagt, dass die Ressource nicht existiert.
Aber dennoch, ist ein Beispiel für eine Operation in diesem Fall.
In ähnlicher Weise wird der Get-Vorgang auch ausgeführt, da
keine Änderungen an der Ressource auf der Server-Site vorgenommen werden.
Post-Eingabe werden natürlich die Ressource auf der Serverseite ändern.
Sie müssen eine neue Ressource erstellen oder
vorhandene Ressource auf der Serverseite ändern, und natürlich Datenpräsentationen.
Wie ich betont habe, sind die beiden gemeinsamen Fallbacks für die
Darstellung entweder JSON XML, der letzte Teil, den
wir betonen müssen, ist, dass die Serverseite völlig zustandslos sein sollte.
Das bedeutet, dass die Serverseite den Status des Clients nicht verfolgt.
Wenn der Server den Status des Clients verfolgen muss, ist er nicht skalierbar.
Für eine skalierbare Implementierung der Serverseite
verwenden Sie normalerweise einen zustandslosen Server auf der Serverseite.
Wenn also die Anfrage der Clients, die an den Server gesendet werden
, wird als unabhängige Anfrage behandelt und wird nicht auf vorherige
Anforderungen, die bereits vom Server vom jeweiligen Client bearbeitet wurden, reflektiert.
Es liegt also in der Verantwortung des Kunden, seinen eigenen Zustand zu verfolgen.
Entweder in Form von Cookies oder in einer Datenbank der Client-Site.
Was auch immer bedeutet, dass es geeignet ist.
Nun ist dieser Ansatz, bei dem der Client seinen eigenen Status verfolgt, viel skalierbarer,
da Ihr Client für die Verfolgung seines eigenen Status verantwortlich ist.
Und hier hilft uns das clientseitige MVC-Setup in dieser Hinsicht.
Und schließlich sind wir noch nicht mit REST fertig, wir werden mehr von
REST in den Übungen sehen, die in dieser speziellen Lektion folgen.
Und dann
werden wir auch weitere Details zur REST-Verwendung im Rest dieses Kurses sehen.
( MUSIK)