【发布时间】:2023-03-25 19:49:01
【问题描述】:
看完后:
https://restfulapi.net/resource-naming/
当一个文档具有多个唯一 ID 时,我有一个问题是重新分级引用集合中的文档。
在链接的材料中给出了一个例子:
我们可以使用 URI 识别单个“客户”资源 “/customers/{customerId}”。
或
http://api.example.com/device-management/managed-devices/{device-id}
http://api.example.com/user-management/users/{id}
http://api.example.com/user-management/users/admin
还有我的例子:
http://myserver/api/courses/{id}
其中有对应的js Express函数:
app.get('/api/courses/:id', (req, res) =>...
我的问题是,如果我的文档(课程)有两个我想使用的唯一 ID 密钥,我该如何维护一致的 API。
如ID1 & ID2。
我将如何在 express 中编码以及如何编写 url?
所以如果我需要这两个 API:
http://myserver/api/courses/{id1}
http://myserver/api/courses/{id2}
如果我提供两个 Express 例程:
app.get('/api/courses/:id1', (req, res) =>...
app.get('/api/courses/:id2', (req, res) =>...
并且 ID1 和 ID2 都是相同的类型(例如数字)。 REST API 如何区分这两者?
【问题讨论】:
-
您能否告诉我们为什么您有这些不同的 ID?它们与外部世界相关吗?否则,您可以只使用一个 ID。
-
@charlietfl 这不是真的。一个元素可以有多个唯一 ID - 每个 ID 在明确定义的范围内都是唯一的
-
我很想知道你如何存储你的课程,你将如何在数据库中查询它?如果以相同的方式查找它,那么您仍然只使用单一路线,例如
/api/courses/1234和/api/courses/5678可以引用相同的课程但仍使用相同的 API -
许多国家/地区的课程/产品都有本地 ID 和国际 ID。库存系统一直在做这件事!!!卖方零件编号,供应商零件编号。既独特又多次不同!!!
标签: javascript rest express