Brūkšnelis, pabraukimas arba camelCase kaip žodžio ribotuvas URI?

Intraneto programai sukuriu HTTP pagrįstą API. Suprantu, kad tai yra gana maža problema didelėje dalykų schemoje, tačiau: ar brūkšneliai, pabraukimai ar kamelė yra naudojami norint atskirti žodžius URI?


Čia yra mano pradinės mintys:

kupranugaris

  • Galimos problemos, jei serveris yra nejautrus.
  • atrodo, kad ji gana plačiai naudojama užklausų raktų eilutėse ( http://api.example.com ? searchQuery = ...), bet ne kitose URI dalyse.

brūkšnelis

  • daugiau estetinių nei kitos alternatyvos
  • atrodo, kad jis yra plačiai naudojamas URI kelio dalyje
  • niekada nematėte eilutės eilutės su nešiojamų užklausų eilute lauke.
  • galbūt geriau SEO (tai gali būti mitas)

Pabraukimas

  • galbūt lengviau programuoti kalbas
  • visose URI dalyse daugelis populiarių API („Facebook“, „Netflix“, „StackExchange“ ir kt.) pabrėžia.

Aš linkiu pabrėžti viską. Tai, kad dauguma didžiųjų žaidėjų juos naudoja, yra įtikinamas (žr. Https://stackoverflow.com/a/608458/360570 ).

245
24 апр. nustatė Joshua Johnson balandžio 24 d 2012-04-24 19:37 '12, 07:37 PM 2012-04-24 19:37
@ 5 atsakymai

Nuskaitytinos žiniatinklio programos URL turite naudoti brūkšnelius. Kodėl? Kadangi brūkšnelė atskiria žodžius (todėl paieškos variklis gali indeksuoti atskirus žodžius) ir nėra simbolis. Poveikis yra žodžio simbolis, ty jis turėtų būti laikomas žodžio dalimi.

Du kartus spustelėkite jį „Chrome“: camelCase
Du kartus spustelėkite jį „Chrome“: under_score
Du kartus spustelėkite jį „Chrome“: ginti

Pažiūrėkite, kaip „Chrome“ (girdėjau, kad „Google“ taip pat veikia paieškos sistema) mano, kad tik vienas iš dviejų žodžių:

camelCase ir „ underscore taip pat reikalauja, kad vartotojas naudotų „ Shift“ klavišą, o hyphenated - ne.

Taigi, jei turite naudoti brūkšnelius žiniatinklio programoje, kodėl jūs nerimaujate daryti kažką kita intraneto programoje? Dar vienas dalykas, kurį reikia prisiminti.

229
26 авг. Neil McGuigan atsakymas, rugpjūčio 26 d. 2013-08-26 21:32 '13, 21:32 2013-08-26 21:32

Standartinė geriausia REST API praktika yra turėti brūkšnelį , o ne kupranugarį ar pabraukimą.

Tai gauta iš Marko Masse'o „REST API dizaino taisyklės“ iš Oreilly.

border=0

Taip pat atkreipkite dėmesį, kad pats .../hyphen-underscore-or-camelcase-as-word-delimiter-in-uris perpildymas naudoja brūkšnelius URL: .../hyphen-underscore-or-camelcase-as-word-delimiter-in-uris

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

93
26 авг. atsakymą pateikė Al Sweigart 26 rug . 2013-08-26 20:38 '13, 20:38, 2013-08-26 20:38

Nors rekomenduoju brūkšnelius, taip pat skelbiu atsakymą, kuris nėra jūsų sąraše:

Nieko

  • Mano įmonės API turi URI, pvz., /quotationrequests/ , /purchaseorders/ ir kt.
  • Nors sakėte, kad tai yra intraneto programa, jūs nurodėte SEO kaip pranašumą. „Google“ sutampa su modelio / foobar / užklausos URL ?q=foo+bar
  • Tikiuosi, kad nemanote, kad PHP skambinti bet kokiu savavališku eilutę, kurią vartotojas eina į adreso juostą, kaip siūlo @ ServAce85!
19
03 дек. Nicholas Shanks atsakymas gruodžio 03 2012-12-03 18:48 '12 at 18:48 PM 2012-12-03 18:48

Apskritai, tai neturės pakankamai poveikio, kad jaustųsi nerimauti, ypač todėl, kad tai yra intraneto programa, o ne vieša interneto programa. Visų pirma, kadangi tai yra intranetas, SEO nėra problema, nes jūsų intranetas neturėtų būti prieinamas paieškos sistemoms. (ir jei taip, tai nėra intraneto programa).

Ir bet kuri infrastruktūra, kuri nusipelno dėmesio, jau turi numatytąjį metodą, arba gana paprasta keisti, kaip ji veikia su daugiakalbiais URL komponentais, taigi aš per daug nesijaudinčiau.

Taigi, kaip matyti įvairias galimybes:

Brūkšnelis

  • Didžiausias pavojus brūkšneliui yra tas, kad tas pats simbolis (paprastai) taip pat naudojamas atimimui ir skaitmeniniam neigimui (t. Y. Minus arba neigiamas).
  • Brūkšneliai URL komponentuose jaučiasi nepatogūs. Atrodo, kad jie tik prasmingi URL pabaigoje, kad atskirtų žodžius straipsnio antraštėje. Arba, pavyzdžiui, kamino perpildymo klausimo antraštė, kuri pridedama prie URL pabaigos ir naudotojo aiškumo tikslais.

Pabraukimas

  • Vėlgi, jie klaidingi URL komponentuose. Jie suskaido URL srautą (ir grožį / paprastumą), nes jie iš esmės prideda didelę, didelę matomą erdvę švaraus, sklandaus URL viduryje.
  • Jie linkę būti derinami su pabraukimais. Jei tikitės, kad jūsų naudotojai nukopijuos jūsų URL į „MS Word“ ar kitas panašias teksto redagavimo programas arba bet kurioje kitoje vietoje, kur gali būti URL ir stilius su pabraukimais (pvz., Tradicinėmis nuorodomis), galbūt norėsite venkite pabraukti žodžių ribotojų. Visų pirma, spausdinant, pabrauktas URL su pabraukimu paprastai atrodo kaip tarpai, o ne pabraukimai.

Camelcase

  • Šiandien mano mėgstamiausia, nes ji sukuria URL, atrodo veiksmingesnė ir neturi jokių klaidų, kurias atlieka du ankstesni.
  • Tai gali būti šiek tiek sunkiau skaityti žmonėms, kuriems sunku atskirti mažąsias ir mažąsias, tačiau tai neturėtų būti didelė problema URL, nes dauguma žodžių turi būti URL komponentai ir atskirti / bet kuriuo atveju . Jei pastebėsite, kad URL komponentas yra ilgesnis nei 2 žodžiai, turbūt turėtumėte pabandyti rasti geresnį šios sąvokos pavadinimą.
  • Ji turi galimą atvejo jautrumo problemą, tačiau daugelis platformų gali būti konfigūruojamos taip, kad būtų jautrūs korpusei arba bylai. Kiekvienas žmogus tik tikrai susiduria su problema 2 atvejais: a) žmonėms, kurie įveda URL, ir b) programuotojams (nes nesame žmonės), įvesdami URL. Typos visada yra problema, nepriklausomai nuo atvejo jautrumo, todėl tai nesiskiria nuo vieno atvejo.
12
31 окт. atsakymas pateikiamas cdeszaq 31 okt. 2012-10-31 16:25 '12 at 4:25 pm 2012-10-31 16:25

čia yra geriausias iš abiejų pasaulių.

Aš taip pat pabrėžiu, kad be visų jūsų teigiamų dalykų apie juos, taip pat yra senas mokyklos stilius.

Taigi, aš naudoju pabraukimus ir tiesiog pridėkite mažą perrašymo taisyklę į jūsų „Apache.htaccess“ failą, kad perrašytumėte visus pabraukimo brūkšnelius į brūkšnelius.

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

2
10 июня '15 в 2:49 2015-06-10 02:49 atsakymą pateikė vartotojo2597538 10 birželio 15 d. 2:49 2015-06-10 02:49

Kiti klausimai apie žymes arba Ask a question