我正在为一个内部网络应用程序设计一个基于http的API。我意识到这是一个非常小的问题,但是:我应该使用连字符、下划线或骆驼号来分隔uri中的单词吗?
以下是我最初的想法:
camelCase
如果服务器不区分大小写,可能会出现问题
似乎在查询字符串键(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中双击该文件:连字符
看看Chrome(我听说谷歌也做了一个搜索引擎)只认为其中一个是两个词?
camelCase和underscore也要求用户使用shift键,而hyphenated则不需要。
所以,如果你应该在一个可爬行的web应用程序中使用连字符,为什么要在一个内部网应用程序中做一些不同的事情呢?少记一件事。
你应该在可爬行的web应用程序URL中使用连字符。为什么?因为连字符分隔单词(以便搜索引擎可以索引单个单词),而且连字符不是单词字符。下划线是一个单词字符,这意味着它应该被认为是单词的一部分。
在Chrome中双击这个:camelCase
在Chrome中双击这个:under_score
在Chrome中双击该文件:连字符
看看Chrome(我听说谷歌也做了一个搜索引擎)只认为其中一个是两个词?
camelCase和underscore也要求用户使用shift键,而hyphenated则不需要。
所以,如果你应该在一个可爬行的web应用程序中使用连字符,为什么要在一个内部网应用程序中做一些不同的事情呢?少记一件事。