rest - 使用不带标识符的路由参数的 REST API 路径
问题描述
使用 expressjs 术语路由参数来显示我的问题,我也看到人们称之为路径参数。“正确”的 URL 将是
Route path: /users/:userId/books/:bookId
但目前我正在接手一个像这样设计 api 的项目,
/:userId/:bookId
/:groupId/:userId/some_resurce
...
明显的问题是,当我从浏览器查看 url 时,我会对这些参数的含义感到困惑,如下所示。但是项目已经运行了一年多,我需要知道是否值得重新编写它。
那么像这样的 URL 还有其他问题吗?
解决方案
那么像这样的 URL 还有其他问题吗?
在阅读访问日志时,他们可能会为您的操作员做额外的工作?
REST 不关心 URI 拼写约定——在您到达源服务器之前,URI 实际上是一个不透明的字符串;只有源服务器有权将 URI 分解为其语义部分。
也就是说,通用组件不关心路径中是否有标识符编码,或者这些标识符的语义会根据其他路径元素而变化。
特别是,他们根本不在乎不相关的标识符有共同的元素:
/1/2
/1/2/some_resource
就通用组件而言,此处确定的资源彼此之间没有特殊关系。(例如,如果您删除 /1/2,预计不会以任何方式影响 /1/2/some_resource)。
当我从浏览器查看 url 时,我会对这些参数的含义感到困惑
是的 - 这是你的主要论点:当前的 URI 设计没有考虑人类的可供性。
除非你能证明那些以人为本的考虑因素(用户、运营商、技术作家)抵消了变革的成本,否则你可能会坚持下去。
推荐阅读
- powerbi - Power BI 服务中的数据警报可以发送多封电子邮件吗?
- html - 如何删除 HTML 表格中整个列中的某些字符串?
- java - Java语言中如何连续输入int、double和String?
- typescript - 类型提示来自本地依赖的 Vue 3 全局属性
- windows - 从 powershell 中的计划任务获取更多信息
- arraylist - Groovy - ArrayList 中按键的平均值
- expo - 在 react native WEB 上,如果已安装则打开应用程序,如果未安装,请导航到商店页面
- materialize - Materialize css 不再更新了吗?
- python - 抓取 Coinmarketcap 数据只返回前 10 个结果,为什么其余 90 个不返回?
- visual-studio-code - 在 setting.json [vscode] 中设置 linter 的路径