Wenn ich auf meiner Webseite dynamische Dropdowns anzeigen möchte (z. B. Städtenamen basierend auf dem ausgewählten Land), kann ich dies mit AJAX tun. Ich kann es aber auch mit einem REST-Aufruf tun. Also was soll ich verwenden?
Mein Problem ist, dass ich wirklich keinen Unterschied zwischen REST und anderen HTTP-Browseranforderungen erhalte (auch bekannt als Formularübermittlung). Ich habe mir die formalen Definitionen von REST angesehen und es scheint identisch mit einer HTTP-Anfrage zu sein. Wie unterscheidet sich REST von AJAX?
Antworten:
Ähm, nein. Diese beiden sind vollständig orthogonal. Wenn Sie Ihre Seite mit Daten aktualisieren wollen , müssen Sie von einem Server bekommen, Sie werden es tun AJAX. Es geht nicht anders. Und dieser AJAX-Aufruf kann REST oder etwas anderes verwenden.
Ein REST- Aufruf ist immer eine HTTP-Anforderung. Obwohl es verwendet werden kann, um reguläre Browseraufrufe (wie das Senden von Formularen) zu verarbeiten und vollständige HTML-Seiten zurückzugeben, wird es normalerweise verwendet, um API-Aufrufe zu verarbeiten, die nur Daten zurückgeben (normalerweise im JSON-Format).
Da es sich bei REST um einen bestimmten Stil für die Verwendung von HTTP handelt, wird dieser wohl so verwendet, wie er ursprünglich verwendet werden sollte, was die meisten Menschen jedoch nicht "verstanden" haben und daher fast zwei Jahrzehnte lang nur selten verwendet wurden.
Insbesondere bedeutet REST, zu codieren, welche Entität Sie in der URL selbst abrufen oder bearbeiten möchten (normalerweise über eine ID) und welche Aktion Sie in der verwendeten HTTP-Methode ausführen möchten (GET zum Abrufen, POST zum Ändern, PUT zum Erstellen , LÖSCHEN zum Löschen).
quelle
Nun, ich denke, Sie müssen zuerst verstehen, dass AJAX und REST nicht wirklich Alternativen für Ihren Anwendungsfall sind. AJAX steht für asynchrones Javascript und XML. Wenn Sie also Javascript zum Laden von Daten verwenden, nachdem die Browseranforderung abgeschlossen wurde, führen Sie AJAX aus.
REST steht dagegen für Representational State Transfer, das, wie Stefan Billet betonte, HTTP-Anfragen zur Datenübertragung verwendet. REST ist also eine Möglichkeit, AJAX zu verwenden. SOAP wäre eine andere, aber dies ist für Ihre Frage offtopisch. Ihre Frage sollte also eher lauten: "Welche Technologie eignet sich am besten für meinen Anwendungsfall?"
In diesem Fall würde ich empfehlen, über die Datenmenge nachzudenken, die in Ihren Dropdowns verwendet wird. Wenn Sie nur wenige Elemente haben, können Sie sie alle auf Ihrer Seite haben und einfach Javascript verwenden, um die entsprechenden Elemente anzuzeigen. Eine zweite Option könnte die Verwendung eines REST-Aufrufs mit JSON als Repräsentation sein, da die Verwendung mit Javascript einfach und sehr leicht ist, was natürlich auch AJAX bedeuten würde.
quelle
REST verwendet die HTTP-Verben GET, POST, PUT, DELETE, um Ressourcen auf einem Server abzurufen, einzufügen, zu aktualisieren und zu löschen. Beispiel: GET mit URL: controller / customer / {id}
Die Alternative besteht darin, einem Controller Methoden wie GetCustomerById (id), InsertCustomer (Kunde), UpdateCustomer (Kunde), DeleteCustomer (Kunde) hinzuzufügen. Dies ist ein sogenannter RPC-Ansatz. Beispiel: GET with url: controller / GetCustomerById? Id = {id}
Einer der Unterschiede besteht darin, dass eine REST-API vorhersehbar ist. Wenn Sie REST kennen und den Namen der gewünschten Ressource kennen (z. B. Kunde), können Sie sofort den REST-Controller mit den Standardverben verwenden.
Bei einem RPC-Ansatz müssen Sie wissen, welche Methoden auf Ihrem Controller vorhanden sind, welche Argumente sie verwenden usw. Diese Signaturen können von Controller zu Controller, von App zu App variieren.
AJAX hingegen ist nur eine asynchrone Methode zum Platzieren der oben genannten Anforderungen, sei es als REST-Aufruf oder als RPC-Aufruf.
quelle