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
Bindestrich
Unterstrich
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 ).
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.
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
Während ich Bindestriche empfehle, postuliere ich auch eine Antwort, die nicht auf Ihrer Liste steht:
Gar nichts
/quotationrequests/
, /purchaseorders/
Und so weiter.?q=foo+bar
Überein.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
nterstrich
CamelCase
/
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.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.