具有多个标识符的 REST 端点

Posted

技术标签:

【中文标题】具有多个标识符的 REST 端点【英文标题】:REST Endpoint with more then one identifier 【发布时间】:2021-09-18 23:15:18 【问题描述】:

我有这种情况,我需要获得一个可以由多个唯一 ID 识别的项目。消费者应该能够决定他们使用哪一种。

/product/productId
/product/gtin
/product/pzn

如果我按照上面显示的方式进行操作,则消费者使用的 ID 不再清晰。

到目前为止我的解决方案:

/product/productId/productId
/product/gtin/gtin
/product/pzn/pzn

处理这种多样性的最佳做法是什么?

【问题讨论】:

【参考方案1】:

处理这种多样性的最佳做法是什么?

任何确保您的标识符不模棱两可的方法都是很好

在网络上,您通常会看到在查询字符串中使用键/值对,因为 html 本身就支持这一点

/product?productId=productId
/product?gtin=gtin
/product?pzn=pzn

如果您不关心 HTML 支持,但仍希望能够利用通用工具,请查看URI Templates,它允许您交流其他 URI 构造方法。

/product/productId/productId
/product?productId=productId

这些选择中的任何一个都很好。后一种拼写更适用于 HTML 表单,前一种拼写适用于 relative resolution。

如何选择?由于机器不在乎,因此优先考虑受选择影响的某些人(操作员阅读日志、编写文档的作者、查看浏览器历史记录的消费者),并选择最适合他们需求的拼写。

【讨论】:

以上是关于具有多个标识符的 REST 端点的主要内容,如果未能解决你的问题,请参考以下文章

基于替代标识符获取rest API中的资源

设计用于返回多个对象计数的 REST api

Rest和Restful & http

XCUITest:从具有多个单元格原型的多个单元格标识符中选择一个 CollectionView 单元格

视图中具有多个单元格标识符的自动布局 UITableViewCell

SWIFT:在具有多个部分的表视图中显示字典时,无法将具有标识符单元格错误的单元格出列