rest - 没有复数的 Rest API 命名约定
问题描述
我用烧瓶做了一个 API 服务器。
我也想在未来遵循 REST API 约定进行维护。
经过一番搜索,发现名词与复数一起使用。
但我想知道,如果名词没有复数,我该如何命名呢?
以下端点供用户使用。
/user/{id}
- 单用户
/users/
- 所有用户
名词用户很好。但是,例如,名词luggage
,没有复数只有单数。
我对它的命名感到困惑。
这里有什么想法吗?
解决方案
我也想在未来遵循 REST API 约定进行维护。
REST 不关心您为资源标识符使用的拼写约定。任何与RFC 3986一致的拼写都可以。例如,如果您查看RFC 7230,您会发现没有对名词的引用。
http://example.org/C6CF1E69-1EFD-4836-BDF7-025972D85298
... 是一个完全可以接受的 URI。
经过一番搜索,发现名词与复数一起使用。
通常,是的。在许多情况下,它将集合的元素视为集合本身的从属,因此拼写/collection-name/member-id
经常出现。
但是,正如您所注意到的,并非所有英语名词都有复数形式。并非所有英语名词都有单数形式,这也是事实。任何绝对规则都将要求 (a) 一个不出现任何特殊名词的域,或 (b) 一些对冲。
机器不在乎——我们没有编译器在字典中查找复数以确保遵守规则。就 URI 解析器而言,它只是组成路径段的字节序列。
只有人类观众才在乎;实际上,人类并不在乎正确的拼写是否遵循规则,而是因为他们很容易猜到/记住正确的拼写。
简而言之,如果您需要butter
或的集合的标识符spectacles
,遵循的合理协议是从您可用的一种拼写中进行最佳猜测,而不必过多担心该拼写是否遵循“规则”。
据我所知,flask
对 URI 复数没有强烈的看法;如果没有,或者意见不令人满意,您可以查看其他库以查看它们的作用(例如,启动Rails Inflector并查看复数方法的作用)。
推荐阅读
- ruby-on-rails - POST 到 https 总是得到 404 错误,但如果使用 http 则不会
- embedded - 无法在 Windows 10 上使用 Visual Studio Code 打开源文件 avr/io.h(hal.h 的依赖项)
- ruby-on-rails - 如何编辑预先存在的模型以添加新创建的关联类?
- ffmpeg - ffmpeg 图像列表(文本文件)到带有叠加水印的视频
- python - 我想在情节中指定一种颜色
- sql - 应用 SUM(其中 date1 和 date2 之间的日期)
- javascript - 如何在功能组件中使用 react-datepicker 的 excludeTimes 并使用 onChange?
- java - 在 Spring Boot 应用程序初始化时将数据插入 MongoDB 容器
- javascript - 是的,多个复选框的验证
- python - dtale 在用户输入后重新加载数据单元