在 AJAX 操作的时候,服务器端的数据返回格式是 JSON,但是 JSON 的具体内容呢?是否有一定的标准可以参考呢?其实网上有讨论,选择是比较多的:
http://stackoverflow.com/questions/12806386/standard-json-api-response-format
- JSON API
- JSend
- OData JSON Protocol
- HAL
- JSON-RPC 2.0
之所以选择 JSend 是因为他的简单,虽然 HTTP1.1 协议已经被广泛的使用也支持 put delete 等方法,但是本身 HTML 表单的诸多形式限制,让 web 开发依然保持简便的 get post 为核心,未来如何,要看 HTTP2 和 Chrome 的市场占有率能到什么程度了
JSend 属于 OmniTI 这家美国小型公司旗下 OmniTI Labs 中的一个项目,因为其简单够用,所以感觉其制定以后连维护的必要也没有(我也没有找到作者是谁):
https://labs.omniti.com/labs/jsend
JSend 将所有的请求区分为三种不同的状况(status):
- Success
- Fail(表单数据验证错误)
- Error(系统层面的错误)
将返回的一级菜单也仅仅设定为四个:
- status
- data
- message(在 Error 的时候必选使用)
- code(在 Error 的时候可选使用)
Success:
{
status : "success",
data : { "post" : { "id" : 2, "title" : "Another blog post", "body" : "More content" }}
}
Fail:
{
"status" : "fail",
"data" : { "title" : "A title is required" }
}
Error:
{
"status" : "error",
"message" : "Unable to communicate with database"
}
非常简单