首页 > 解决方案 > 处理用户在 API 响应中输入所有可选参数之一的情况

问题描述

我编写的 API 端点支持两个 one-of 参数,并且要求用户只为其中一个提供值,但理想情况下,他们不应同时指定两者。

{"A": "something", "B": "something"}

当用户不提供两者中的任何一个时,将引发异常。

但是,我想知道当用户为两者输入值时我应该如何处理这些场景。

对于上下文,松散地说,A 是 B 的子集。我的队友有两种意见:

  1. 用户同时输入时,以A为准。
  2. 当用户同时输入两者时,会抛出 400 异常以提醒用户我们只需要两者之一。

谢谢!

标签: rest

解决方案


如果期望一个属性是合理/有意义的,您应该只允许一个属性。

严格的 API 很有帮助,因为它们可以更好地引导用户了解服务器和资源的意图。

这种东西的一个很好的工具是使用像 json-schema 这样的东西来准确地指定你的服务器做什么和不期望什么。能够指定只能出现 2 个属性中的 1 个是其功能之一。


推荐阅读