Projektuję oparty na HTTP interfejs API dla aplikacji intranetowej. Zdaję sobie sprawę, że jest to niewielki problem w wielkim schemacie rzeczy, ale: czy powinienem używać łączników, znaków podkreślenia lub camelCase do ograniczania słów w identyfikatorach URI?
Oto moje początkowe przemyślenia:
camelCase
- możliwe problemy, jeśli serwer nie rozróżnia wielkości liter
- wydaje się, że ma dość powszechne zastosowanie w kluczach ciągu zapytania ( http://api.example.com ? searchQuery = ...), ale nie w innych częściach URI
Łącznik
- bardziej estetycznie niż inne alternatywy
- wydaje się być szeroko stosowany w części ścieżki URI
- nigdy nie widziałem klucza ciągu zapytania z łącznikiem w stanie dzikim
- być może lepiej dla SEO (może to być mit)
Podkreślać
- potencjalnie łatwiejsze w obsłudze języki programowania
- kilka popularnych interfejsów API (Facebook, Netflix, StackExchange itp.) używa podkreślników we wszystkich częściach identyfikatora URI.
Skłaniam się do podkreślenia wszystkiego. Fakt, że większość dużych graczy z nich korzysta, jest przekonujący (patrz https://stackoverflow.com/a/608458/360570 ).
hyphenated query string in the wild
. Zazwyczaj jest to czas na camelCase.