rest - 查询参数 AND 和 OR 区分
问题描述
我想要以下网址:
- 找我名字叫约翰和年龄 30 的球员
- 给我找名字叫 John 或 Mary 的球员
于是想:
- /players?names=约翰&年龄=30
但是第二个。“或”位让我很感兴趣-/players?names=John&name=Mary
是错的
它应该是: -/players?names=John,Mary
注意:我认为纯 REST 并不关心,因为 URL 应该是不透明的,而只是在这里考虑更多的 API 或实用 REST。
解决方案
REST 不关心您对标识符使用什么拼写,只要拼写符合RFC 3986定义的生产规则即可。
4 级 URI 模板支持将列表编码/提取到 URI 的行为。它们可以按照您在第二个示例中说明的方式工作/players?names=John,Mary
,需要一些额外的魔法来处理数据中出现分隔符和保留字符的情况。
您还将看到特定查询名称重复多次的示例/players?name=John&name=Mary
:JAX-RS是可以将这种拼写提取为 aList
或 a的示例Set
。
在某些情况下,您会发现使用括号[]
来标识数组参数的示例:/players?name[]=John&name[]=Mary
. 这不符合 RFC 3986,而是基于现已过时的旧规范。
推荐阅读
- sql - 具有多个输入的 Azure 流分析查询
- javascript - 无法从数组中删除索引并使其再次可用于新输入
- python - 如何在 Keras 中创建一个自定义损失函数,其中包括神经网络输出相对于输入的导数?
- reactjs - 错误:无效的挂钩调用。在构建我的代码时
- visual-studio-code - 如何配置 VSCode 以在外部编辑器中打开给定的文件类型?
- python - 在 Prophet 上测量模型精度
- java - 如何使用 SOCKS 代理或 java 中的任何其他代理通过 SSL 创建到 AMQP 队列的连接
- dji-sdk - setPhotoTimeIntervalSettings 返回参数非法
- azure-devops - Microsoft Build Engine 升级后无法发布 Angular 应用程序
- keras - keras lstm输入形状错误请帮助:(