我想抛出这个问题,并从Play Framework的其他用户(特别是Play 2.0)获得一些反馈。
假设我有一个名为'FooBar'的实体。我们还假设我提供的Restful API允许在URL 'http://<host>/api/foo_bar'
进行CRUD操作。
我的问题是,社群是否就如何命名URL达成共识,其中URL提供对名称包含多个单词的实体的访问权限?
我可以想到以下4个用于命名这样一个URL的选项,这些选项看起来都是合理的:
http://<host>/api/fooBar
http://<host>/api/FooBar
http://<host>/api/foobar
提前感谢您的反馈!
答案 0 :(得分:1)
AFAIK,网址没有约定。
大多数示例使用单个单词作为实体名称,并在网址中使用小写字母表示它们:entity = Computer
,列出它们的路径= /computers
,因此对于multi-word-parts
我是建议使用小写和连字符或下划线 - 取决于你的习惯。
我也看到了使用你指出的所有符号来播放项目和/或样本(例如Play documentation使用Pascal,play-authenticate sample使用小写 - 连字符 - 等等。)
另一方面,对于普通用户可见的URL(我知道这是偏离主题的),特别是如果URL代表显示页面的标题,我建议使用/The_Wikipedia_style
- 支持非拉丁语字符。
答案 1 :(得分:0)
我会避免选项2和3,原因有两个:
URI的路径组件区分大小写**,因此这些路径实际上可能指向应用中的不同REST端点,这很容易让人感到困惑。
某些服务器(即在Windows上)将路径视为不区分大小写,如果您需要将应用程序迁移到其他平台(或托管服务提供商),这可能会给您带来问题。
在选项1和4之间,我更喜欢1(或连字符),这是事实上的标准,但我知道没有官方。
** The spec for the path component of a URI未指定不区分大小写,因为它明确表示所有内容。