775 Stimmen

Bindestrich, Unterstrich oder camelCase als Worttrennzeichen in URIs?

Ich entwickle eine HTTP-basierte API für eine Intranet-Anwendung. Ich erkenne, dass es ein ziemlich kleines Anliegen im großen Schema der Dinge ist, aber: Sollte ich Bindestriche, Unterstriche oder camelCase verwenden, um Wörter in den URIs zu trennen?


Hier sind meine ersten Gedanken:

camelCase

  • mögliche Probleme, wenn der Server Groß- und Kleinschreibung nicht berücksichtigt
  • scheint in Abfragestring-Schlüsseln ziemlich weit verbreitet zu sein ( http://api.example.com?**searchQuery**=... ), aber nicht in anderen URI-Teilen

Bindestrich

  • ästhetisch ansprechender als die anderen Alternativen
  • scheint im Pfadteil des URI weit verbreitet zu sein
  • noch nie in freier Wildbahn ein Schlüssel mit Bindestrich gesehen
  • möglicherweise besser für SEO (dies könnte ein Mythos sein)

Unterstrich

  • potenziell leichtere Handhabung durch Programmiersprachen
  • mehrere beliebte APIs (Facebook, Netflix, StackExchange , usw.) verwenden Unterstriche in allen Teilen des URI.

Ich tendiere zu Unterstrichen für alles. Die Tatsache, dass die meisten großen Unternehmen sie verwenden, ist überzeugend (siehe https://stackoverflow.com/a/608458/360570 ).

767voto

Neil McGuigan Punkte 43578

Sie sollten Bindestriche in der URL einer crawlbaren Webanwendung verwenden. Warum? Weil der Bindestrich Wörter trennt (so dass eine Suchmaschine die einzelnen Wörter indizieren kann), und ein Bindestrich ist kein Wortzeichen . Der Unterstrich ist ein Wortzeichen, das heißt, er sollte als Teil eines Wortes betrachtet werden.

Doppelklicken Sie darauf in Chrome: camelCase
Doppelklicken Sie in Chrome auf diesen Eintrag: under_score
Doppelklicken Sie darauf in Chrome: hyphen-ated

Sehen Sie, dass Chrome (ich habe gehört, dass Google auch eine Suchmaschine herstellt) nur eines davon für zwei Wörter hält?

camelCase y underscore erfordern auch, dass der Benutzer die shift Taste, während hyphenated nicht.

Wenn Sie also Bindestriche in einer crawlbaren Webanwendung verwenden sollten, warum sollten Sie sich dann die Mühe machen, in einer Intranetanwendung etwas anderes zu tun? Eine Sache weniger, die man sich merken muss.

378voto

Al Sweigart Punkte 9869

Die bewährte Standardpraxis für REST-APIs besteht darin, eine Bindestrich , keine Großbuchstaben oder Unterstriche.

Dies stammt aus Mark Masses "REST API Design Rulebook" von Oreilly.

Beachten Sie außerdem, dass Stack Overflow selbst Bindestriche in der URL verwendet: .../hyphen-underscore-or-camelcase-as-word-delimiter-in-uris

Das gilt auch für WordPress: http://inventwithpython.com/blog/2012/03/18/how-much-math-do-i-need-to-know-to-program-not-that-much-actually

47voto

Sorter Punkte 8826

Kurze Antwort:

klein geschriebene Wörter mit einem Bindestrich als Trennzeichen

Lange Antwort:

Was ist der Zweck einer URL?

Wenn der Verweis auf eine Adresse die Antwort ist, dann leistet auch eine verkürzte URL gute Arbeit. Wenn wir sie nicht leicht lesbar und wartbar machen, hilft sie weder den Entwicklern noch den Betreuern. Sie stellen eine Entität auf dem Server dar, daher müssen sie logisch benannt werden.

Google empfiehlt die Verwendung von Bindestrichen

Erwägen Sie die Verwendung von Satzzeichen in Ihren URLs. Die URL http://www.example.com/green-dress.html ist für uns viel nützlicher als http://www.example.com/greendress.html . Wir empfehlen Ihnen, in Ihren URLs Bindestriche (-) anstelle von Unterstrichen (_) zu verwenden.

Da ich aus der Programmierung komme, ist camelCase eine beliebte Wahl für die Benennung von gemeinsamen Wörtern.

Pero RFC 3986 definiert, dass bei URLs zwischen Groß- und Kleinschreibung unterschieden wird. Da bei URLs zwischen Groß- und Kleinschreibung unterschieden wird, ist es immer sicher und gilt als guter Standard, sie klein zu halten. Damit ist die Groß- und Kleinschreibung aus dem Fenster geworfen.

Source : https://metamug.com/article/rest-api-naming-best-practices.html#word-delimiters

32voto

Nicholas Shanks Punkte 9933

Während Ich empfehle Bindestriche, Ich werde auch eine Antwort vorschlagen, die nicht auf Ihrer Liste steht:

Überhaupt nichts

  • Die API meines Unternehmens hat URIs wie /quotationrequests/ , /purchaseorders/ und so weiter.
  • Obwohl Sie sagten, es handele sich um eine Intranet-Anwendung, führten Sie SEO als Vorteil an. Google findet das Muster /foobar/ in einer URL für eine Abfrage von ?q=foo+bar
  • I realmente hoffen, dass Sie die Ausführung eines PHP-Aufrufs für eine beliebige Zeichenkette, die der Benutzer in die Adressleiste eingibt, nicht als @ServAce85 schlägt vor!

24voto

cdeszaq Punkte 29945

Im Allgemeinen werden die Auswirkungen nicht so groß sein, dass man sich Sorgen machen müsste, zumal es sich um eine Intranet App und nicht eine allgemein nutzbare Internet-App. Insbesondere, da es sich Intranet SEO ist kein Thema, da Ihr Intranet für Suchmaschinen nicht zugänglich sein sollte. (und wenn doch, handelt es sich nicht um eine Intranet-App).

Und jedes Framework, das etwas taugt, hat entweder bereits eine Standardmethode, um dies zu tun, oder es ist ziemlich einfach zu ändern, wie es mit Mehrwort-URL-Komponenten umgeht, also würde ich mir keine allzu großen Sorgen machen.

Abgesehen davon sehe ich die verschiedenen Optionen folgendermaßen:

Bindestrich

  • Die größte Gefahr bei Bindestrichen besteht darin, dass dasselbe Zeichen (in der Regel) auch für Subtraktion und numerische Negation verwendet wird (d. h.. minus o negativ ).
  • Bindestriche siente peinlich in URL-Komponenten. Sie scheinen nur am Ende einer URL sinnvoll zu sein, um Wörter im Titel eines Artikels zu trennen. Oder z. B. der Titel einer Stack Overflow-Frage, die aus Gründen der Suchmaschinenoptimierung und der Benutzerklarheit an das Ende einer URL angehängt wird.

Unterstrich

  • Auch hier fühlen sie sich in den URL-Komponenten falsch an. Sie unterbrechen den Fluss (und die Schönheit/Einfachheit) einer URL, da sie im Wesentlichen einen großen, schweren offensichtlichen Raum in der Mitte einer sauberen, fließenden URL hinzufügen.
  • Sie neigen dazu, sich mit Unterstreichungen zu vermischen. Wenn Sie davon ausgehen, dass Ihre Benutzer Ihre URLs in MS Word oder andere ähnliche Textverarbeitungsprogramme oder in andere Programme kopieren, die eine URL aufgreifen und mit einer Unterstreichung versehen können (wie Links traditionell sind), dann sollten Sie Unterstriche als Worttrenner vermeiden. Insbesondere im Druck sieht eine unterstrichene URL mit Unterstrichen so aus, als hätte sie Räume anstelle von Unterstrichen enthalten.

CamelCase

  • Das ist bei weitem mein Favorit, da es die URLs besser fließen lässt und keine der Fehler aufweist, die die beiden vorherigen Optionen haben.
  • Kann sein leicht schwieriger zu lesen für Leute, die Groß- und Kleinschreibung nur schwer unterscheiden können, aber das sollte in einer URL kein großes Problem darstellen, da die meisten "Wörter" URL-Bestandteile sein sollten und durch ein / wie auch immer. Wenn Sie feststellen, dass eine URL-Komponente mehr als 2 "Wörter" lang ist, sollten Sie wahrscheinlich versuchen, einen besseren Namen für dieses Konzept zu finden.
  • Es tut ein mögliches Problem mit der Groß-/Kleinschreibung haben, aber die meisten Plattformen können so eingestellt werden, dass entweder die Groß-/Kleinschreibung beachtet oder nicht beachtet wird. Jede es ist nur realmente ein Problem für 2 Fälle: a.) Menschen, die die URL eingeben, und b.) Programmierer (da wir keine Menschen sind), die die URL eingeben. Tippfehler sind toujours ein Problem, unabhängig von der Groß- und Kleinschreibung, so ist dies nicht anders als alle ein Fall.

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