Ich entwerfe eine HTTP-basierte API für eine Intranet-App. Mir ist klar, dass es im großen Schema der Dinge ein ziemlich kleines Problem ist, aber: Problem ist 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 nicht zwischen Groß- und Kleinschreibung unterscheidet
- scheint in Abfragezeichenfolgenschlüsseln ( http://api.example.com ? searchQuery = ...) ziemlich weit verbreitet zu sein , aber nicht in anderen URI-Teilen
Bindestrich
- ästhetischer als die anderen Alternativen
- scheint im Pfadbereich der URI weit verbreitet zu sein
- Ich habe noch nie einen getrennten Abfragezeichenfolgenschlüssel in freier Wildbahn gesehen
- möglicherweise besser für SEO (dies kann ein Mythos sein)
Unterstreichen
- möglicherweise einfacher für Programmiersprachen zu handhaben
- Mehrere beliebte 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/360570 ).
hyphenated query string in the wild
. Das ist normalerweise eine Zeit für camelCase.Antworten:
Sie sollten Bindestriche in einer crawlbaren Webanwendungs-URL verwenden. Warum? Weil der Bindestrich Wörter trennt (damit eine Suchmaschine die einzelnen Wörter indizieren kann) und kein Wortzeichen ist . Unterstrich ist ein Wortzeichen, dh es sollte als Teil eines Wortes betrachtet werden.
Doppelklicken Sie in Chrome: camelCase.
Doppelklicken Sie in Chrome: under_score.
Doppelklicken Sie in Chrome: mit Bindestrich
Sehen Sie, wie Chrome (ich höre, dass Google auch eine Suchmaschine erstellt) nur eines dieser beiden Wörter denkt?
camelCase
undunderscore
auch den Benutzer auffordern , die verwenden shiftSchlüssel, währendhyphenated
dies nicht tut.Wenn Sie also Bindestriche in einer crawlbaren Webanwendung verwenden sollten, warum sollten Sie dann in einer Intranetanwendung etwas anderes tun? Eine Sache weniger, an die man sich erinnern sollte.
quelle
?event_id=1
oder?eventId=1
???Die Standard-Best Practice für REST-APIs besteht darin, einen Bindestrich zu verwenden , keinen Camelcase oder Unterstrich.
Dies stammt aus Mark Masses "REST API Design Rulebook" von Oreilly.
Beachten Sie außerdem, dass der Stapelüberlauf 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-actually
quelle
Während ich Bindestriche empfehlen, werde ich auch eine Antwort postulieren , die nicht auf der Liste ist:
Gar nichts
/quotationrequests/
,/purchaseorders/
und so weiter.?q=foo+bar
quelle
Im Allgemeinen wird es nicht genug Auswirkungen haben, um sich Sorgen zu machen, zumal es sich um eine Intranet- App und nicht um eine allgemein verwendete Internet-App handelt. Da es sich um ein Intranet handelt , ist SEO kein Problem, da Ihr Intranet für Suchmaschinen nicht zugänglich sein sollte. (und wenn ja, ist es keine Intranet-App).
Und jedes Framework, das es wert ist, gesalzen zu werden, hat entweder bereits eine Standardmethode, oder es ist ziemlich einfach zu ändern, wie es mit URL-Komponenten mit mehreren Wörtern umgeht, sodass ich mir darüber keine allzu großen Sorgen machen würde.
Das heißt, hier ist, wie ich die verschiedenen Optionen sehe:
Bindestrich
Unterstreichen
CamelCase
/
sowieso durch eine getrennt werden . Wenn Sie feststellen, dass Sie eine URL-Komponente haben, die länger als 2 "Wörter" ist, sollten Sie wahrscheinlich versuchen, einen besseren Namen für dieses Konzept zu finden.quelle
Kurze Antwort:
Wörter in Kleinbuchstaben mit einem Bindestrich als Trennzeichen
Lange Antwort:
Was ist der Zweck einer URL?
Wenn das Zeigen auf eine Adresse die Antwort ist, leistet auch eine verkürzte URL gute Arbeit. Wenn wir das Lesen und Verwalten nicht einfach machen, hilft es Entwicklern und Betreuern nicht gleichermaßen. Sie stellen eine Entität auf dem Server dar, daher müssen sie logisch benannt werden.
Google empfiehlt die Verwendung von Bindestrichen
CamelCase hat einen Programmierhintergrund und ist eine beliebte Wahl für die Benennung gemeinsamer Wörter.
Aber RFC 3986 werden URLs jedoch für verschiedene Teile der URL als Groß- und Kleinschreibung definiert. Da URLs zwischen Groß- und Kleinschreibung unterscheiden, ist es immer sicher, sie zurückhaltend zu halten (in Kleinbuchstaben) und wird als guter Standard angesehen. Das nimmt einen Kamelkoffer aus dem Fenster.
Quelle: https://metamug.com/article/rest-api-naming-best-practices.html#word-delimiters
quelle
Hier ist das Beste aus beiden Welten.
Ich "mag" auch Unterstriche, neben 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 Ihres Apache hinzu, um alle Unterstriche in Bindestriche zu schreiben.
https://yoast.com/apache-rewrite-dash-underscore/
quelle