it-swarm.com.de

Bindestrich, Unterstrich oder camelCase als Wortbegrenzer in URIs?

Ich entwerfe eine HTTP-basierte API für eine Intranet-App. Mir ist klar, dass es ein ziemlich kleines Problem im großen Schema der Dinge ist, aber: sollte ich Bindestriche, Unterstriche oder camelCase verwenden, um Wörter in den URIs abzugrenzen?


Hier sind meine ersten Gedanken:

camelCase

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

Bindestrich

  • ästhetischer als die anderen Alternativen
  • scheint im Pfadbereich der URI weit verbreitet zu sein
  • nie zuvor gesehener getrennter Abfragezeichenfolgeschlüssel in freier Wildbahn
  • möglicherweise besser für SEO (dies kann ein Mythos sein)

Unterstrich

  • möglicherweise einfacher für Programmiersprachen zu handhaben
  • mehrere gängige APIs (Facebook, Netflix, StackExchange usw.) verwenden in allen Teilen der URI Unterstriche.

Ich neige zu Unterstrichen für alles. Die Tatsache, dass die meisten Big Player sie verwenden, ist überzeugend (siehe https://stackoverflow.com/a/608458/36057 ).

403
Josh Johnson

Sie sollten Bindestriche in einer durchsuchbaren Webanwendungs-URL verwenden. Warum? Denn der Bindestrich trennt Wörter (damit eine Suchmaschine die einzelnen Wörter indizieren kann) und ist kein Wortzeichen . Der Unterstrich ist ein Wortzeichen und sollte daher als Teil eines Wortes betrachtet werden.

Doppelklicken Sie in Chrome: camelCase darauf
Doppelklicken Sie in Chrome auf: under_score
Doppelklicken Sie in Chrome auf: Bindestrich

Sehen Sie, wie Chrome (ich höre, dass Google auch eine Suchmaschine erstellt) nur eines dieser beiden Wörter für Sie ist?

Für camelCase und underscore muss der Benutzer auch das verwenden shift Schlüssel, während hyphenated nicht tut.

Wenn Sie also Bindestriche in einer durchsuchbaren Webanwendung verwenden sollten, warum sollten Sie dann in einer Intranetanwendung etwas anderes tun? Eine Sache weniger, an die man sich erinnern muss.

399
Neil McGuigan

Die empfohlene Standardpraxis für REST APIs besteht darin, einen Bindestrich zu verwenden, nicht in Kamelgehäusen oder Unterstrichen.

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

Wie auch WordPress: http://inventwithpython.com/blog/2012/03/18/how-much-math-do-i-need-to-know-to-program-not-that-much- eigentlich

170
Al Sweigart

Während ich Bindestriche empfehle, postuliere ich auch eine Antwort, die nicht auf Ihrer Liste steht:

Gar nichts

  • Die API meines Unternehmens enthält URIs wie /quotationrequests/, /purchaseorders/ Und so weiter.
  • Obwohl Sie sagten, es sei eine Intranet-App, haben Sie SEO als Vorteil aufgeführt. Google stimmt mit dem Muster/foobar/in einer URL für eine Abfrage von ?q=foo+bar Überein.
  • Ich hoffe wirklich , dass Sie nicht in Betracht ziehen, einen PHP) -Aufruf für eine beliebige Zeichenfolge auszuführen, die der Benutzer an die Adressleiste weitergibt , wie @ ServAce85 vorschlägt!
27
Nicholas Shanks

Im Allgemeinen wird es nicht genug Einfluss haben, um den man sich Sorgen machen muss, zumal es sich um eine Intranet ​​App und keine allgemein verwendbare Internet-App handelt. Insbesondere, da es sich um Intranet ​​handelt, ist SEO kein Problem, da Ihr Intranet nicht für Suchmaschinen zugänglich sein sollte. (und wenn ja, ist es keine Intranet-App).

Und jedes Framework, das es wert ist, hat entweder bereits eine Standardmethode, um dies zu tun, oder es ist ziemlich einfach zu ändern, wie es mit URL-Komponenten mit mehreren Wörtern umgeht, sodass ich mir keine Sorgen machen würde.

Das heißt, hier ist, wie ich die verschiedenen Optionen sehe:

Bindestrich

  • Die größte Gefahr für Bindestriche besteht darin, dass dasselbe Zeichen (normalerweise) auch für Subtraktion und numerische Negation verwendet wird (z. B. minus oder negativ).
  • Bindestriche feel umständlich in URL-Komponenten. Sie scheinen nur am Ende einer URL sinnvoll zu sein, um Wörter im Titel eines Artikels zu trennen. Oder zum Beispiel der Titel einer Stapelüberlauf-Frage, die aus Gründen der Suchmaschinenoptimierung und der Klarheit der Benutzer am Ende einer URL hinzugefügt wird.

nterstrich

  • Auch hier fühlen sie sich in URL-Komponenten falsch. Sie unterbrechen den Fluss (und die Schönheit/Einfachheit) einer URL, da sie im Wesentlichen einen großen, schweren scheinbaren Raum in der Mitte einer sauberen, fließenden URL hinzufügen.
  • Sie tendieren dazu, sich in Unterstreichungen einzufügen. Wenn Sie erwarten, dass Ihre Benutzer Ihre URLs in MS Word oder ein anderes ähnliches Textbearbeitungsprogramm kopieren oder an einer anderen Stelle einfügen, die eine URL aufgreift und sie mit einer Unterstreichung formatiert (wie Links traditionell sind ), sollten Sie Unterstriche als Worttrennzeichen vermeiden. Insbesondere beim Drucken sieht eine unterstrichene URL mit Unterstrichen so aus, als ob Leerzeichen anstelle von Unterstrichen darin enthalten ist.

CamelCase

  • Bei weitem mein Favorit, da dadurch die URLs besser zu fließen scheinen und keine der Fehler der beiden vorherigen Optionen vorliegen.
  • Kann etwas schwerer zu lesen sein für Leute, die es schwer haben, Groß- und Kleinschreibung zu unterscheiden, aber dies sollte in einer URL kein großes Problem sein, da die meisten "Wörter" sein sollten URL-Komponenten und trotzdem durch / Getrennt. Wenn Sie feststellen, dass Sie eine URL-Komponente haben, die mehr als 2 "Wörter" lang ist, sollten Sie wahrscheinlich versuchen, einen besseren Namen für dieses Konzept zu finden.
  • Es does hat ein mögliches Problem mit der Groß-/Kleinschreibung, aber die meisten Plattformen können so eingestellt werden, dass entweder zwischen Groß- und Kleinschreibung unterschieden wird. Es ist nur wirklich 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 immer ein Problem, unabhängig von der Groß- und Kleinschreibung, so ist dies nicht anders als alle einen Fall.
17
cdeszaq

hier ist das Beste aus beiden Welten.

Ich "mag" auch Unterstriche, abgesehen von all Ihren positiven Punkten über sie, gibt es auch einen bestimmten Old-School-Stil zu ihnen.

Ich verwende also Unterstriche und füge einfach eine kleine Umschreiberegel zur .htaccess-Datei deines Apache hinzu, um alle Unterstriche in Bindestriche umzuschreiben.

https://yoast.com/Apache-rewrite-dash-underscore/

0
user2597538