REST JSON API可选参数设计

时间:2015-12-29 12:18:52

标签: json rest jackson

我们的目标是开发API,您可以在其中发布/data/save/,它将接受一些JSON数据,如下所示。 JSON应包含以下属性之一的主要要求: " attribute1"," attribute2"," attribute3"。即当存在一个属性时,另一个属性不应存在。

{
   "name": "test name",
   "attribute1": [
       "test1", "test2"
    ]
    or
    "attribute2": [
        "test3", "test4"
     ]
     or
     "attribute3": true
}

问题是如何正确设计这样的API,它易于使用,而不会与客户端混淆。

了解这方面的一些最佳实践会很好。

3 个答案:

答案 0 :(得分:1)

我会返回

  

400错误请求

     

由于格式错误,服务器无法理解该请求   句法。客户端不应该重复请求   修改

以及解释不支持多个属性的短语。

答案 1 :(得分:1)

我同意这样的API让客户端感到困惑。

关于创建不同端点的内容:

  

POST / data / save / attribute1 json_1

     

POST / data / save / attribute2 json_2

答案 2 :(得分:0)

custom media type应说明如何使用您的API。它应该指定您的请求中包含的内容。

另一个解决方案可能是,建立这样的请求:

{
   "name": "test name",
   "attr-key": "my-attribute1",
   "values": ["test1", "test2"]
}