rest - 处理用户在 API 响应中输入所有可选参数之一的情况
问题描述
我编写的 API 端点支持两个 one-of 参数,并且要求用户只为其中一个提供值,但理想情况下,他们不应同时指定两者。
{"A": "something", "B": "something"}
当用户不提供两者中的任何一个时,将引发异常。
但是,我想知道当用户为两者输入值时我应该如何处理这些场景。
对于上下文,松散地说,A 是 B 的子集。我的队友有两种意见:
- 用户同时输入时,以A为准。
- 当用户同时输入两者时,会抛出 400 异常以提醒用户我们只需要两者之一。
谢谢!
解决方案
如果期望一个属性是合理/有意义的,您应该只允许一个属性。
严格的 API 很有帮助,因为它们可以更好地引导用户了解服务器和资源的意图。
这种东西的一个很好的工具是使用像 json-schema 这样的东西来准确地指定你的服务器做什么和不期望什么。能够指定只能出现 2 个属性中的 1 个是其功能之一。
推荐阅读
- node.js - 如何在quickbook中动态生成token
- python - 将单个 S3 存储桶中的 excel 文件移动到新的子文件夹
- html - 用Css,js创建一个带有透明三角形图像的自定义削皮器动画
- reactjs - 如何访问 react-google-maps 组件的方法?
- java - 如何在不使用第三方库的情况下使用 Java 中另一个 CSV 文件中的值创建 CSV 文件
- php - 当 laravel 项目在另一个项目中时访问命名空间
- netlogo - 如何让乌龟比较来自两个不同补丁的变量?
- wordpress - 而不是 wp-login.php 如何在自定义 wordpress 页面中显示登录错误
- netsuite - 通过脚本在 Netsuite 报告中添加过滤器
- git - 如何仅从 git 克隆选定的分支?