Akademische Aufgabe… Zuerst wurde uns gesagt, wir sollten eine Reihe statischer .html
Dateien erstellen, die die Wahlergebnisse in verschiedenen Verwaltungsabteilungen zeigen. Dann wurde uns gesagt, wir sollten dies mithilfe von Django-Vorlagen "modernisieren". Fair genug, ich kann die Vorteile eines solchen Ansatzes sehen.
Aber dann wurde uns gesagt, wir sollten dies weiter "mordernisieren", indem wir die App "RESTful" machen. Soweit ich das beurteilen kann, bedeutet dies, dass der Server möglicherweise nur eine API verfügbar macht, die auf Anforderungen reagiert, indem er Client-Rohdaten im JSON-Format sendet. Der Client, bei dem es sich um eine statische HTML + CSS + JS-Site handelt, muss diesen JSON empfangen und dann die Webseite auf der Browserseite dynamisch mit JavaScript erstellen.
Kann mir jemand erklären, was die Vorteile eines solchen Ansatzes sind, da ich leider einige Vorträge verpasst habe, wenn dies erklärt worden sein muss? Weil ich sagen muss, dass ich nur Nachteile sehen kann:
- Benutzer mit deaktiviertem JavaScript können die Seite nicht anzeigen.
- Korrigieren Sie mich, wenn ich falsch liege, aber AFAIK kann den Inhalt einer solchen Website kaum von Google indizieren.
- Es ist für Benutzer unmöglich, die Wahlergebnisse in einer bestimmten Abteilung mit einem Lesezeichen zu versehen. Stattdessen müssen sie sich jedes Mal, wenn sie die Seite besuchen, durchklicken, damit JavaScript die Ergebnisse dieser bestimmten Abteilung lädt. Oder setzen Sie einen Selenium-Bot ein, der dies für sie erledigt.
- Es bricht Browser-Schaltflächen vor / zurück.
Antworten:
Technisch gesehen , ein Webserver, der HTML - Seiten dient ist RESTful. Text / HTML ist eine gültige, perfekt gültige Darstellung , solange der Medientyp gemäß der einheitlichen Oberfläche richtig eingestellt ist . Missbrauche einfach nicht deine Verben (GET, POST usw.) und folge HATEOAS (dh benutze im Wesentlichen eine vernünftige URL, die eine Ressource eindeutig identifiziert) und bam, es ist erholsam.
Ich denke, Ihr Professor fragt, dass Ihre Webseiten eine RESTful- API verwenden, die häufig json zurückgibt (aber auch hier jeden Medientyp zurückgeben kann, den der Client akzeptiert ).
Wie für Ihre Einwände:
Nun, sie werden keine dynamischen Inhalte erhalten können. Die Seite kann weiterhin statischen Inhalt enthalten.
Der statische Inhalt, einschließlich der Meta-Tags, kann weiterhin problemlos gecrawlt werden.
Nein, nein. Wenn Sie HATEOAS ordnungsgemäß folgen, sollte die URL alle Statusinformationen enthalten, die zum Rendern der Seite erforderlich sind. Wenn sie in der URL enthalten ist, kann sie mit einem Lesezeichen versehen werden.
quelle
XMLHttpResponse
, die sich nicht beeinflussen , was in der Browser - Adressleiste angezeigt wird.! Für jede Verwaltungsabteilung, in der ich die Wahlergebnisse ansehe, ist die mit einem Lesezeichen versehene URL dieselbe und verweist auf die Hauptseite.Es ist eine subtile Unterscheidung, aber Sie wechseln von einer Webseite zu einer Webanwendung. Auf einer Webseite sind Server und Client eng miteinander verbunden. Sie können Informationen nur über die Webseite anzeigen.
Durch das Verschieben der Daten in einen RESTful-Webdienst werden die Ansicht (früher die Webseite) und das Modell (die Daten) vollständig entkoppelt und Ihre Optionen für die Interaktion mit den Daten erweitert.
quelle
Eine REST-API stellt wie jede API die Ressourcen in einer maschinenlesbaren Schnittstelle zur Verfügung, die jeder Client verwenden kann.
Wenn Sie diese API zum Erstellen Ihrer Website verwenden, sind Sie eine von vielen Anwendungen, die denselben Dienst verwenden.
Vorteile des REST-Stils sind: - Verwenden Sie ein vorhandenes Protokoll (hier HTTP), um die Daten auszutauschen. - Sie verwenden definierte Medientypen, um Ressourcen auszutauschen.
Dies bedeutet, dass andere Entwickler vorhandenes Wissen und Tools verwenden können, um Ihre API zu verwenden.
quelle