连字符,下划线或camelCase作为URI中的单词分隔符?

我正在为Intranet应用程序设计一个基于HTTP的API。 我意识到这是事情的宏伟计划中一个非常小的问题,但是: 我应该使用连字符,下划线还是驼峰来分隔URI中的单词?


这是我最初的想法:

骆驼香烟盒

  • 如果服务器不区分大小写,可能会出现问题
  • 似乎在查询字符串键(http://api.example.com?SEARCHQUERY = ...),而不是在其他URI部分相当广泛使用
  • 连字符号

  • 比其他选择更美观
  • 似乎被广泛用于URI的路径部分
  • 从来没有在野外看到带有连字符的查询字符串键
  • 可能更适合搜索引擎优化(这可能是一个神话)
  • 下划线

  • 编程语言可能更容易处理
  • 一些流行的API(Facebook,Netflix,StackExchange等)在URI的所有部分都使用下划线。
  • 我倾向于强调一切。 大多数大牌玩家都在使用它们的事实引人注目(请参阅https://stackoverflow.com/a/608458/360570)。


    您应该在可抓取的Web应用程序URL中使用连字符。 为什么? 由于连字符分隔单词(以便搜索引擎可以索引单个单词),并且不是单词字符。 下划线是一个单词字符,这意味着它应该被视为单词的一部分。

    在Chrome中双击此项:camelCase
    在Chrome中双击此选项:under_score
    在Chrome中双击此项:连字符

    看看谷歌浏览器(我听说谷歌做搜索引擎)只认为其中之一是两个词?

    camelCaseunderscore也需要用户使用shift键,而hyphenated不需要。

    因此,如果您应该在可抓取的Web应用程序中使用连字符,为什么您会在Intranet应用程序中执行不同的操作? 还有一件事要记住。


    REST API的标准最佳实践是使用连字符而不是驼峰或下划线。

    这来自Oreilly的Mark Masse的“REST API设计规则”。

    另外,请注意堆栈溢出本身在URL中使用连字符: .../hyphen-underscore-or-camelcase-as-word-delimiter-in-uris

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


    虽然我建议使用连字符,但我还会假设一个不在列表中的答案:

    一无所有

  • 我公司的API具有/quotationrequests//purchaseorders/等URI。
  • 尽管你说这是一个内联网应用程序,但你将SEO列为一项好处。 Google确实与URL中的pattern / foobar /匹配,以查询?q=foo+bar
  • 我真的希望你不要考虑对用户传入地址栏的任何字符串执行PHP调用,正如@ServAce85所建议的那样!
  • 链接地址: http://www.djcxy.com/p/70107.html

    上一篇: Hyphen, underscore, or camelCase as word delimiter in URIs?

    下一篇: Preloading images with jQuery