为了账号安全,请及时绑定邮箱和手机立即绑定

标准的JSON API响应格式?

标准的JSON API响应格式?

POPMUISE 2019-09-06 17:14:10
是否存在用于从API构造JSON响应的标准或最佳实践?显然,每个应用程序的数据都是不同的,所以我不关心,而是“响应样板”,如果你愿意的话。我的意思的一个例子:成功要求:{  "success": true,  "payload": {    /* Application-specific data would go here. */  }}请求失败:{  "success": false,  "payload": {    /* Application-specific data would go here. */  },  "error": {    "code": 123,    "message": "An error occurred!"  }}
查看完整描述

3 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

是的,已经出现了一些标准(尽管对标准的定义有一些自由):


JSON API - JSON API还包括创建和更新资源,而不仅仅是响应。

JSend - 简单而且可能你正在做的事情。

OData JSON协议 - 非常复杂。

HAL - 像OData一样,但想成为HATEOAS。

还有JSON API描述格式:


昂首阔步

JSON Schema(由swagger使用,但你可以单独使用它)

JSON中的WADL

肾错构瘤

HAL,因为HATEOAS在理论上是自我描述的。


查看完整回答
反对 回复 2019-09-06
?
大话西游666

TA贡献1817条经验 获得超14个赞

成功回复 data


{

  "data": {

    "id": 1001,

    "name": "Wing"

  }

}

错误响应返回 error


{

  "error": {

    "code": 404,

    "message": "ID not found"

  }

}

如果您的客户端是JS,您可以if ("error" in response) {}用来检查是否有错误。


查看完整回答
反对 回复 2019-09-06
?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

我猜一个事实标准还没有真正出现(也许永远不会)。但无论如何,这是我的看法:


成功要求:


{

  "status": "success",

  "data": {

    /* Application-specific data would go here. */

  },

  "message": null /* Or optional success message */

}

请求失败:


{

  "status": "error",

  "data": null, /* or optional error payload */

  "message": "Error xyz has occurred"

}

优势:成功和错误情况下的顶级元素相同


缺点:没有错误代码,但如果需要,您可以将状态更改为(成功或失败)代码,或者 - 您可以添加另一个名为“代码”的顶级项目。


查看完整回答
反对 回复 2019-09-06
  • 3 回答
  • 0 关注
  • 913 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信