Was ist der Nutzen der globalen Ressourcen-URIs (das heißt Adressierbarkeit)?

StackOverflow https://stackoverflow.com/questions/147172

  •  02-07-2019
  •  | 
  •  

Frage

Was ist der Vorteil der Referenzierung Ressourcen global eindeutige URIs mit (wie REST tut) im Vergleich zu einem proprietären ID-Format?

Zum Beispiel:

  1. http://host.com/student/5
  2. http://host.com/student?id=5

Im ersten Ansatz die gesamte URL ist die ID. Im zweiten Ansatz nur die 5 die ID. Was ist der praktische Nutzen des ersten Ansatzes über die zweite?

Warum REST (scheinbar) aus dem Weg gehen, um den ersten Ansatz zu befürworten?

- EDIT:

Meine Frage war verwirrend, weil es wirklich zwei verschiedene Fragen gestellt:

  1. Was ist der Vorteil der Adressierbarkeit?
  2. Was ist der Unterschied zwischen den beiden URI Formen ist oben gesehen.

Ich habe beiden Fragen beantwortet meinen eigenen Beitrag unten.

War es hilfreich?

Lösung 2

Ich werde meine eigene Frage beantworten:

1) Warum sind URIs wichtig?

Ich werde zitiert aus RESTful Web Service von Leonard Richardson und Sam Ruby (ISBN: 978-0-596-52926-0) :

  

Betrachten wir eine echte URI mit dem Namen der Ressource im Genre „Verzeichnis der Ressourcen zu   Quallen“: http://www.google.com/search?q=jellyfish . Das Qualle Suche ist genauso   viel eine echte URI wie http://www.google.com . Wenn HTTP nicht adressierbar, oder wenn die Google   Suchmaschine war nicht eine adressierbare Web-Anwendung, würde ich nicht in der Lage sein, das zu veröffentlichen   URI in einem Buch. Ich würde Ihnen sagen: „Öffnen Sie eine Web-Verbindung auf google.com, Typ‚Qualle‘   in das Suchfeld ein, und klicken Sie auf die Schaltfläche ‚Google-Suche‘.

     

Das ist keine akademische Sorge. Bis Mitte der 1990er Jahre, als ftp: // URIs   populär wurde für Dateien auf FTP-Sites zu beschreiben, mussten Leute schreiben   Dinge wie: „eine anonyme FTP-Sitzung auf ftp.example.com starten. Dann   ändern in dem Verzeichnis pub / files / und Download-Datei file.txt.“URIs gemacht   FTP als adressierbare wie HTTP. Jetzt schreiben die Leute einfach: „Download ftp: //   ftp.example.com/pub/files/file.txt“sind. Die Schritte sind die gleichen, aber jetzt sind sie   werden kann maschinell erfolgen.

     

[...]

     

Adressierbarkeit ist eines der besten Dinge über Web-Anwendungen. Es macht es einfach für   Kunden die ursprünglichen Designer Web-Sites in einer Weise zu verwenden, nie gedacht.

2) Was ist der Vorteil der Adressierbarkeit?

  

Es ist viel einfacher server bereitgestellt URIs zu folgen, als sie selbst zu konstruieren. Dies gilt insbesondere, da Ressourcen Beziehungen zu komplex werden in einfachen Regeln ausgedrückt werden. Es ist einfacher, die Logik einmal auf dem Server als neu implementieren es in zahlreichen Kunden zu codieren.

     

Die Beziehung zwischen Ressourcen ändern kann sogar wenn die einzelne Ressource URIs unverändert bleiben. Zum Beispiel waren bei Google Maps die Skala ihrer Kartenkacheln ändern, Kunden, die eine relative Kachel Positionen berechnen würde brechen.

3) Was ist der Vorteil von URIs über benutzerdefinierte IDs?

  

Benutzerdefinierte IDs identifiziert eine Ressource eindeutig. URIs einen Schritt weiter gehen Sie zu sagen, wo es zu finden. Dies vereinfacht die Client-Logik.

Andere Tipps

Die Hauptsache ist, wenn ich URIs wie das sehe, ist ein normaler Benutzer in der Lage sein würde, dass uri zu erinnern.

Us Geeks sind in Ordnung mit Fragezeichen und Variablen, aber wenn jemand erinnert http: // www. host.com/users/john statt http://www.host. com /? view = Benutzer & name = John , dann ist das ein großer Vorteil.

Suchmaschinen-Optimierung meist.

Es macht sie auch leichter zu merken und saubere, professionelle meiner Meinung nach suchen.

Die erste ist ästhetisch ansprechender.

Technisch gibt es keinen Unterschied, aber die ehemaligen verwenden, wenn Sie können.

Wie Ólafur erwähnt, Die Klarheit der ursprünglichen URL ist ein Vorteil.

Ein weiterer Grund ist die Umsetzung Flexibilität.

Lassen Sie uns sagen, dass Schüler 5 Veränderungen selten. Wenn Sie die REST-Stil-URL verwenden, haben Sie die Möglichkeit, eine statische Datei dienen, anstatt Code ausgeführt wird. In Rails ist es üblich, dass die erste Anforderung an Studenten / 5 würde eine im Cache gespeicherte HTML-Datei unter dem Web-Stamm erstellen. Diese Datei wird verwendet, nachfolgende Anforderungen zu dienen w / o das Backend zu berühren. Natürlich gibt es nichts Schienen spezifisch über diesen Ansatz.

Die spätere url würde dies nicht zulassen. Sie können keine URL-Variablen haben (? =) In dem Namen von statischen Seiten.

Die beiden URIs sind gültig ab einer REST Sicht jedoch nur erkennen, dass Web-Caches der Abfragezeichenfolgeflag Parameter sehr unterschiedlich zu behandeln.
Wenn Sie das Caching zu Ihrem Vorteil nutzen wollen, dann schlage ich vor, dass Sie nicht über eine Abfrage-String-Parameter verwenden, um Ihre Ressource zu identifizieren.

Ich denke, es kommt darauf an, wie eng Sie den Prinzipien des Feng Shui halten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top