3 Stimmen

Freundliches Url-Schema?

Eines der vielen Dinge, die mir in den letzten Jahren gefehlt haben Abstreifservice die ich letzte Woche eingerichtet habe, sind hübsche URLs. Im Moment wird der Benutzerparameter an das Skript übergeben mit ?u= was ein Symptom für einen faulen Hacker ist (was das Skript zugegebenermaßen ist). Ich habe jedoch darüber nachgedacht, es zu überarbeiten, und ich würde gerne ein paar Rückmeldungen zu den verfügbaren Optionen erhalten. Im Moment gibt es zwei Seiten, Update und Chart, die dem Benutzer Informationen liefern. Hier sind die beiden Möglichkeiten, die ich mir überlegt habe. "1234" ist die Nummer der Benutzer-ID. Der Nutzername kann aus technischen Gründen leider nicht verwendet werden:

  • http://< tld >/update/1234
  • http://< tld >/chart/1234

oder

  • http://< tld >/1234/update
  • http://< tld >/1234/chart

Option 1 ist der Aufruf von update mit der Benutzer-ID. Option 2 ist die Bereitstellung eines Verbs zur Bearbeitung einer Benutzer-ID.

Was ist unter dem Gesichtspunkt der Konsistenz sinnvoller?


Eine weitere erwähnte Option ist

  • http://< tld >/user/1234/update
  • http://< tld >/user/1234/chart

Dies bietet Platz für Seiten, die sich nicht auf einen bestimmten Benutzer beziehen, d.h.

  • http://< tld >/stats

1voto

Troels Thomsen Punkte 10875

Ich habe gerade auf die Frage geantwortet "Wie strukturieren Sie Ihre URL-Routen?" mit meinen Ansichten darüber, wie man URLs RESTful, hackbar und benutzerfreundlich macht. Ich denke, es wäre besser, einen Link zu setzen, als etwas Ähnliches in dieser Frage zu schreiben, daher der Link.

0voto

Gavin M. Roy Punkte 4274

Ich stimme zu, dass vom Kontext her die Anwendung, gefolgt von den Parametern, für mich viel mehr Sinn macht als der Ersatzschlüssel für ein Element, gefolgt von dem Kontext, was das Element ist. Letztendlich würde ich vorschlagen, was immer für Sie natürlicher zu programmieren ist.

0voto

Jason Peacock Punkte 1753

Die Konvention sagt Objekt/Verb/ID, also sollte es so sein:

http://< tld >/user/update/1234

(Mir ist gerade aufgefallen, dass das zu Ihrer aktualisierten Frage passt :)

Also ja, die Nummer 3 ist die beste Wahl.

Dies unterstützt die von Ihnen erwähnten Nicht-Benutzer-Operationen (stats/) sowie die Operationen mehrerer Benutzer:

http://< tld >/user/list/

0voto

Andrew Ingram Punkte 4940

Wenn es eine Möglichkeit gibt, Benutzer aufzulisten, würde ich ein Benutzersegment einführen:

http://< tld >/users/ <--- user list
http://< tld >/users/1234/ <--- user profile, use overloaded POST on this to update.
http://< tld >/users/1234/chart/ <--- user chart

Wenn Sie nur Ihre eigenen Daten sehen können, d. h. die Benutzer sind für einander unsichtbar, brauchen Sie die Benutzerkennung nicht, da Sie sie aus der Sitzung ableiten können:

http://< tld >/user/ <--- user profile, use overloaded POST on this to update.
http://< tld >/user/chart/ <--- user chart

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X