从web服务响应JSON的更好实践是什么?

从web服务响应JSON的更好实践是什么?,json,Json,我是web开发新手,我尝试构建RESTful web服务,其中web服务是JSON 现在我想知道的是,用JSON响应哪种方式更好 方式1 { "status": "success", "messages": {}, "data": { "Some Data": "About Something", "Some Other Data": "About Something Else" } } 方式2 [ "Some Dat

我是web开发新手,我尝试构建RESTful web服务,其中web服务是JSON

现在我想知道的是,用JSON响应哪种方式更好

方式1

{
    "status": "success",
    "messages": {},
    "data": {
         "Some Data": "About Something",
         "Some Other Data": "About Something Else"
    }
}
方式2

[
    "Some Data": "About Something",
    "Some Other Data": "About Something Else"
]

如果您像第一个版本那样对响应进行注释,那么您将发送更多的数据,但这为诸如分页之类的事情打开了大门。如果客户机一次只需要少量数据,并且生成整个数据集过于繁重,则需要对数据进行分页

如果像第二个版本那样提供原始响应,那么发送的数据会减少,但支持分页等功能的能力会降低。您可以强制它们进入,但是客户机必须了解服务器的情况,这会增加它们之间的耦合

因此,实际上这两种方法都适用于不同的情况。实际上,REST库(如)为这两种响应提供了支持。这清楚地表明,任何一个都可以工作,真正取决于你哪一个更适合你的环境


我想补充一点,您可以使用HTTP响应代码而不是显式消息来指示请求的成功状态。

是否可以从响应请求时发送的响应代码中派生“状态”?如果消息是“禁止”的,那么只返回状态码。你的意思是我应该从响应中删除状态并使用HTTP状态码吗?好吧,你只是重复了两次。使用内置状态代码可以在客户端代码中提供其他优势。