首页 > 解决方案 > 使用不带标识符的路由参数的 REST API 路径

问题描述

使用 expressjs 术语路由参数来显示我的问题,我也看到人们称之为路径参数。“正确”的 URL 将是

Route path: /users/:userId/books/:bookId

但目前我正在接手一个像这样设计 api 的项目,

/:userId/:bookId
/:groupId/:userId/some_resurce
...

明显的问题是,当我从浏览器查看 url 时,我会对这些参数的含义感到困惑,如下所示。但是项目已经运行了一年多,我需要知道是否值得重新编写它。

那么像这样的 URL 还有其他问题吗?

路由器参数

标签: restexpressurlrouter

解决方案


那么像这样的 URL 还有其他问题吗?

在阅读访问日志时,他们可能会为您的操作员做额外的工作?


REST 不关心 URI 拼写约定——在您到达源服务器之前,URI 实际上是一个不透明的字符串;只有源服务器有权将 URI 分解为其语义部分。

也就是说,通用组件不关心路径中是否有标识符编码,或者这些标识符的语义会根据其他路径元素而变化。

特别是,他们根本不在乎不相关的标识符有共同的元素:

/1/2
/1/2/some_resource

就通用组件而言,此处确定的资源彼此之间没有特殊关系。(例如,如果您删除 /1/2,预计不会以任何方式影响 /1/2/some_resource)。


当我从浏览器查看 url 时,我会对这些参数的含义感到困惑

是的 - 这是你的主要论点:当前的 URI 设计没有考虑人类的可供性。

除非你能证明那些以人为本的考虑因素(用户、运营商、技术作家)抵消了变革的成本,否则你可能会坚持下去。


推荐阅读