Play Framework 2.0 - Restful URL命名约定

时间:2013-01-11 15:04:47

标签: rest playframework playframework-2.0 naming-conventions

我想抛出这个问题,并从Play Framework的其他用户(特别是Play 2.0)获得一些反馈。

假设我有一个名为'FooBar'的实体。我们还假设我提供的Restful API允许在URL 'http://<host>/api/foo_bar'进行CRUD操作。

我的问题是,社群是否就如何命名URL达成共识,其中URL提供对名称包含多个单词的实体的访问权限?

我可以想到以下4个用于命名这样一个URL的选项,这些选项看起来都是合理的:

  1. 蛇案(这将是轨道惯例) - http:/// api / foo_bar
  2. 骆驼案 - http://<host>/api/fooBar
  3. pascal case - http://<host>/api/FooBar
  4. 只是删除了下划线(这是否有名称?) - http://<host>/api/foobar
  5. 提前感谢您的反馈!

2 个答案:

答案 0 :(得分:1)

AFAIK,网址没有约定。

大多数示例使用单个单词作为实体名称,并在网址中使用小写字母表示它们:entity = Computer,列出它们的路径= /computers,因此对于multi-word-parts我是建议使用小写和连字符或下划线 - 取决于你的习惯。

我也看到了使用你指出的所有符号来播放项目和/或样本(例如Play documentation使用Pascal,play-authenticate sample使用小写 - 连字符 - 等等。)

另一方面,对于普通用户可见的URL(我知道这是偏离主题的),特别是如果URL代表显示页面的标题,我建议使用/The_Wikipedia_style - 支持非拉丁语字符。

答案 1 :(得分:0)

我会避免选项2和3,原因有两个:

  1. URI的路径组件区分大小写**,因此这些路径实际上可能指向应用中的不同REST端点,这很容易让人感到困惑。

  2. 某些服务器(即在Windows上)将路径视为不区分大小写,如果您需要将应用程序迁移到其他平台(或托管服务提供商),这可能会给您带来问题。

  3. 在选项1和4之间,我更喜欢1(或连字符),这是事实上的标准,但我知道没有官方。

    ** The spec for the path component of a URI未指定不区分大小写,因为它明确表示所有内容。