0

我正在设计一个 Web 服务POST,在消息正文中接受带有 JSON 的请求。我希望请求者能够为参数指定多个值,但也可以指定单个值。

因此,对于简单的情况,我支持 JSON,例如:

{
    "name" : "value"
}

而且,在更复杂的情况下,我还支持 JSON,例如:

{
    "name" : [
        "value one",
        "value two",
        "value three"
    ]
}

我的问题是:这是 Web 服务的异常接口吗?我在这里把事情复杂化了吗?

另一种方法是,因为我想支持值数组,所以即使对于简单的情况,也需要值数组:

{
    "name" : [
        "value"
    ]
}

我不喜欢这样,但想在做出决定之前获得社区的意见。

编辑:
我从对话中删除了 REST 这个词,因为这个因素在这里并不重要。

4

3 回答 3

0

REST 是关于资源及其表示的。所以问问自己:

JSON 代表什么资源?

你能回答这个问题吗?

从您问题中的 JSON 我想说,资源是一个具有 names 的对象 。它不是一个只有一个名字的对象。

所以我建议使用你的第二种方法。

于 2013-10-23T18:58:59.260 回答
0

接受POST请求的值数组是 Web 服务的典型特征。然而,元素的数量可以是零或很多。将其保留为一组值,即使只有一个值进入,也会使事情保持简单和一致。

如果 Web 服务的用户需要提交单个元素以进行创建或修改(更新插入),那么PUT请求可能更合适。

于 2013-10-23T17:05:44.160 回答
0

对于这两种情况,我更喜欢单一的结构,然后只有一个处理逻辑可以编码,不需要特殊情况来决定。

这也与 REST 无关。更多的是权衡数据的处理或处理与促使您首先考虑将数据分成两种形式的任何原因。

希望这有帮助。

于 2013-10-23T17:09:43.033 回答