Myślnik, podkreślnik lub camelCase jako ogranicznik słów w Uri?
Projektuję API oparte na HTTP dla aplikacji intranetowej. Zdaję sobie sprawę, że to dość mały problem w wielkim schemacie rzeczy, ale: Czy powinienem używać myślników, podkreślników lub camelCase, aby rozgraniczyć słowa w Uri?
Oto moje pierwsze myśli:
CamelCase
- Możliwe problemy, jeśli serwer jest niewrażliwy na wielkość liter
- wydaje się mieć dość powszechne zastosowanie w kluczach łańcuchów zapytań ( http://api.example.com? searchQuery =...), ale nie w innych częściach URI
Myślnik
- bardziej estetyczne niż inne alternatywy Jest to jedna z najbardziej rozpoznawalnych postaci na świecie.]}
- nigdy nie widziałem podzielonego klucza łańcucha zapytania w dziczy
- ewentualnie lepsze dla SEO (to może być mit)
Podkreślenie
- potencjalnie łatwiejsze w programowaniu języki do obsługi
- kilka popularnych API (Facebook, Netflix, StackExchange, itp.) używają podkreślników we wszystkich częściach URI.
Skłaniam się ku podkreślaniu wszystkiego. Fakt, że większość dużych graczy korzysta z nich jest przekonujący (zobacz https://stackoverflow.com/a/608458/360570).
5 answers
Powinieneś używać myślników w indeksowanym adresie URL aplikacji internetowej. Dlaczego? Ponieważ myślnik oddziela słowa (tak, że wyszukiwarka może indeksować poszczególne słowa), a nie jest znakiem słowa . Podkreślenie jest znakiem słowa, co oznacza, że powinno być uważane za część słowa.
Kliknij dwukrotnie w Chrome: camelCase
Kliknij dwukrotnie to w Chrome: under_score
Kliknij dwukrotnie to w Chrome: myślnik-ated
Zobacz jak Chrome (słyszałem, że Google też robi wyszukiwarkę) myślisz, że jedno z nich to dwa słowa?
camelCase
i underscore
wymagają również od użytkownika użycia klawisza shift , podczas gdy hyphenated
nie.
Więc jeśli powinieneś używać myślników w crawlable aplikacji internetowej, dlaczego chcesz robić coś innego w aplikacji intranetowej? Jedna rzecz mniej do zapamiętania.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-03 21:26:45
Standardową najlepszą praktyką dla API REST jest posiadanie myślnika , a nie camelcase lub podkreślenia.
To pochodzi z "REST API Design Rulebook" Marka Masse ' a z Oreilly.
Ponadto należy pamiętać, że sam Stack Overflow używa myślników w adresie URL: .../hyphen-underscore-or-camelcase-as-word-delimiter-in-uris
Podobnie jak WordPress: http://inventwithpython.com/blog/2012/03/18/how-much-math-do-i-need-to-know-to-program-not-that-much-actually
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-19 00:02:37
Podczas gdy polecam myślniki, postuluję również odpowiedź, której nie ma na twojej liście:
Nic W Ogóle
- API mojej firmy MA URI jak
/quotationrequests/
,/purchaseorders/
i tak dalej. - pomimo, że mówiłeś, że to aplikacja intranetowa, wymieniłeś SEO jako korzyść. Google dopasowuje wzorzec / foobar / w adresie URL dla zapytania
?q=foo+bar
- i naprawdę mam nadzieję, że nie rozważasz wykonania wywołania PHP na dowolny dowolny ciąg znaków, który użytkownik przekazuje do pasek adresu, jak sugeruje @ServAce85!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-26 09:15:55
Ogólnie rzecz biorąc, nie będzie to miało wystarczającego wpływu, szczególnie, że jest to aplikacja intranetowa , a nie aplikacja internetowa ogólnego użytku. W szczególności, ponieważ jest to intranet , SEO nie jest problemem, ponieważ twój intranet nie powinien być dostępny dla wyszukiwarek. (a jeśli tak, to nie jest to aplikacja intranetowa).
I każdy framework, który jest wart soli, albo ma już domyślny sposób, aby to zrobić, albo jest dość łatwy do zmiany, jak radzi sobie z komponentami URL z wieloma wyrazami, więc nie martwiłbym się o to zbytnio.
To powiedziawszy, oto jak widzę różne opcje:
Myślnik
- największym zagrożeniem dla myślników jest to, że ten sam znak (zazwyczaj) jest również używany do odejmowania i negacji numerycznej (tj. minus lub minus ).
- myślniki czuć niewygodne w komponentach URL. Wydają się mieć sens tylko na końcu adresu URL, aby oddzielić słowa w tytule artykułu. Lub, na przykład, tytuł pytania o przepełnienie stosu, które jest dodawane na końcu adresu URL do celów SEO i przejrzystości użytkownika.
Podkreślenie
- ponownie czują się źle w komponentach URL. Rozbijają przepływ (i piękno/prostotę) adresu URL, ponieważ zasadniczo dodają dużą, ciężką pozorną przestrzeń w środku czystego, płynącego adresu URL.
- mają tendencję do wtapiania się w podkreślenia. Jeśli oczekujesz, że użytkownicy skopiują-wkleją Twoje adresy URL do MS Word lub innych podobnych programy do edycji tekstu, lub gdziekolwiek indziej, które mogą podnieść na URL i styl go z podkreślenia (jak linki tradycyjnie są), to może warto unikać podkreślenia jako separatory słów. Szczególnie po wydrukowaniu podkreślony adres URL z podkreślnikami wygląda tak, jakby miał w sobie spacje zamiast podkreślników.
CamelCase
- zdecydowanie mój ulubiony, ponieważ sprawia, że adresy URL wydają się lepiej przepływać i nie ma żadnych wad że poprzednie dwie opcje zrobić.
- może być lekko trudniejsze do odczytania dla osób, które mają trudności z odróżnianiem wielkich liter od małych, ale nie powinno to stanowić większego problemu w adresie URL, ponieważ większość "słów" powinna być składnikami URL i oddzielona
/
tak czy inaczej. Jeśli okaże się, że masz komponent URL, który ma więcej niż 2 "słowa", prawdopodobnie powinieneś spróbować znaleźć lepszą nazwę dla tego pojęcia. - It does have a possible problem with case czułość, ale większość platform może być dostosowana tak, aby rozróżniała wielkość liter lub wielkość liter. W każdym razie jest to tylko naprawdę problem dla 2 przypadków: a.) ludzie wpisując adres URL i B.) Programiści (ponieważ nie jesteśmy ludźmi) wpisując adres URL. Literówki są Zawsze problemem, bez względu na wielkość liter, więc nie różni się to niczym od jednego przypadku.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-31 13:25:43
Oto najlepsze z obu światów.
Ja też "lubię" podkreślenia, oprócz wszystkich twoich pozytywnych punktów na ich temat, jest też pewien staromodny styl.
Więc to, co robię, to używam podkreślników i po prostu dodaję małą regułę przepisywania do Twojego Apache ' a .plik htaccess do ponownego zapisu wszystkich podkreślników do myślników.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-09 23:49:17