【问题标题】:Play Framework 2.0 - Restful URL Naming ConventionsPlay Framework 2.0 - Restful URL 命名约定
【发布时间】:2012-12-26 04:36:40
【问题描述】:

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

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

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

我可以想到以下 4 个选项来命名这样的 URL,每个选项看起来都很合理:

  1. snake case(这将是 Rails 约定)-- http:///api/foo_bar
  2. 骆驼案——http://<host>/api/fooBar
  3. 帕斯卡案例 -- http://<host>/api/FooBar
  4. 只是去掉下划线(这个有名字吗?)--http://<host>/api/foobar

提前感谢您的反馈!

【问题讨论】:

    标签: rest playframework playframework-2.0 naming-conventions


    【解决方案1】:

    AFAIK,网址没有约定。

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

    我还看到使用您指出的所有符号的 Play 项目和/或示例(即 Play documentation 使用 Pascal,play-authenticate sample 使用小写连字符符号等)

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

    【讨论】:

      【解决方案2】:

      出于两个原因,我会避免使用选项 2 和 3:

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

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

      在选项 1 和 4 之间,我更喜欢 1(或连字符),这是事实上的标准,但我不知道任何官方信息。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-07-25
        • 1970-01-01
        • 2016-09-21
        • 2015-12-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多