【问题标题】:Rest API naming convention with no plural没有复数的 Rest API 命名约定
【发布时间】:2018-12-06 03:23:46
【问题描述】:

我用flask做了一个API服务器。

我也想在以后的维护中遵循 REST API 约定。

经过一番搜索,发现名词与复数一起使用。

但是我想知道,如果名词没有复数,我该如何命名呢?

以下端点供用户使用。

/user/{id} - 单用户

/users/ - 所有用户

名词用户很好。但是,例如,名词luggage,没有复数只有单数。

我对它的命名感到困惑。

这里有什么想法吗?

【问题讨论】:

    标签: rest flask uri naming-conventions


    【解决方案1】:

    在 REST 中,以及更普遍的编程中,为变量、资源、表发明名称的情况并不少见...

    我想说有一个端点/luggages/ 来清楚地描述它处理多个资源的事实是可以的。

    【讨论】:

      【解决方案2】:

      我也想在以后的维护中遵循 REST API 约定。

      REST 不关心您为资源标识符使用的拼写约定。任何与RFC 3986 一致的拼写都可以。例如,如果您查看RFC 7230,您会发现没有对名词的引用。

      http://example.org/C6CF1E69-1EFD-4836-BDF7-025972D85298
      

      ... 是一个完全可以接受的 URI。

      经过一番搜索,发现名词与复数一起使用。

      通常,是的。在许多情况下,它将集合的元素视为集合本身的从属,因此经常出现拼写 /collection-name/member-id

      但是,正如您所注意到的,并非所有英语名词都有复数形式。并非所有英语名词都有单数形式,这也是事实。任何绝对规则都需要 (a) 一个不出现任何特殊名词的域,或者 (b) 一些对冲。

      机器不在乎——我们没有编译器在字典中查找复数以确保遵守规则。就 URI 解析器而言,它只是一个组成路径段的字节序列。

      只有人类观众才关心;事实上,人类并不在乎正确的拼写是否遵循规则,而是因为他们很容易猜到/记住正确的拼写。

      简而言之,如果您需要 butterspectacles 集合的标识符,遵循的合理协议是从可用的拼写中进行最佳猜测,而不必过多担心是否一种拼写遵循“规则”。

      据我所知,flask 对 URI 复数没有强烈的看法;如果没有,或者意见不令人满意,您可以查看其他库以了解它们的作用(例如,启动 Rails Inflector 并查看复数方法的作用)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-07-21
        • 2021-07-01
        • 1970-01-01
        • 2018-11-15
        • 2019-12-05
        • 2020-10-21
        • 1970-01-01
        相关资源
        最近更新 更多