java - REST:处理请求中同名的矩阵样式和模板样式参数
问题描述
考虑以下请求
GET http://localhost:8080/app/{id}/details;id=some-value-here
在上面的请求中,有一个名为的模板样式参数id
和一个矩阵类型参数的名称/值id=some-value-here
。
为此类请求提供服务时,API 行为应该是什么?
- 通过处理重复的参数键照常服务请求?因为即使参数键相同,它们的路径也不同。一种是模板样式,另一种是矩阵样式。
- 拒绝参数名称冲突的请求?
- 任何指导此类冲突解决的 HTTP RFC?
解决方案
在 RFC 中找到了答案。
根据RFC 6570的 URI 模板,第 3.2.1 节。变量扩展说以下(摘录)
如果一个变量在一个表达式或一个 URI 模板的多个表达式中出现不止一次,则该变量的值必须在整个扩展过程中保持静态(即,为了计算每个扩展,该变量必须具有相同的值)。
id
这意味着,处理请求,但保留在整个 URI 扩展过程中遇到的任何第一个值。
例如,
GET http://localhost:8080/app/{id}/details;id=some-value-here
如果id
是 1,扩展应该是
GET http://localhost:8080/app/1/details;id=1
推荐阅读
- javascript - 无法在反应组件中显示来自提取的序列化 api 的信息
- hy - Hy的漂亮印刷品?
- python - Python 中的数组操作 HackerRank
- java - 由于无法比较的类型,我的 java 代码出错
- java - 在 mainList 中存储 tempList | Java 集合
- python - 如何高效地拆分时间序列数据集?
- python - 尝试在 Windows 10 上使用 pip 安装 opencv-python 时出错
- python - 带有 3 个参数的 Python Sqlite 更新
- cassandra - 更好地理解 SSTables 格式 big vs bti
- android - ScrollView 不能在 3 个 recyclerviews 内平滑滚动