yadakhov/okdata

OkData json api 规范的包装类。

v1.0 2016-08-01 21:39 UTC

This package is auto-updated.

Last update: 2024-09-21 20:20:44 UTC


README

OkData 受到 jsend api 响应规范的启发。

规范制定的动机是拥有类似以下外观的 json api 响应:

{
    "ok" : true,
    "data" : { "id" : 1 }
}

关于两个键的说明: okdata,因此规范被称为 OkData。

每种类型的必需和可选键

示例响应类型

GET /posts.json

{
    "ok" : true,
    "data" : {
        "posts" : [
            { "id" : 1, "title" : "A blog post", "body" : "Some useful content" },
            { "id" : 2, "title" : "Another blog post", "body" : "More content" },
        ]
     }
}

GET /posts/2.json

{
    "ok" : true,
    "data" : { "post" : { "id" : 2, "title" : "Another blog post", "body" : "More content" }}
}

DELETE /posts/2.json

{
    "ok" : true,
    "data" : null
}

必需键

  • ok: 应始终设置为 true
  • data: 作为 API 调用返回的任何数据的包装器。如果调用返回无数据(如最后一个示例所示),则应将 data 设置为 null。

错误

当 API 调用因服务器上的错误而失败时。例如

GET /posts.json

{
    "ok" : false,
    "error" : "Unable to communicate with database"
}

必需键

  • ok: 应始终设置为 false。
  • error: 一个有意义、面向最终用户的(或至少值得记录的)消息,解释出了什么问题。

可选键

  • data: 用于任何关于错误的其它信息的通用容器,例如导致错误的条件、堆栈跟踪等。

OkData 和 JSend 之间的区别是什么?

OkData 使用布尔状态 ok。JSend 使用三种状态:成功、失败和错误。在我的经验中,我们只使用成功和错误。

布尔 ok 状态也使得检查变得更容易。 if (json.ok) { }