1

我有一个应用程序,其中来自数据库的信息作为 JSON 响应发回。

定制 jQuery 端来处理每一个响应似乎需要付出很多努力,但适应性很小。

JSON 格式可以通过哪些方式进行标准化?另外,有没有办法在 jQuery 中“插入”处理程序?

我一直在思考这样的事情:

{
"replyCode": "OK"/"Error",
"replyMessage": "Operation successful"/"Could not connect",
"returnData": ... // Entities go here
}
4

3 回答 3

2

标准化 JSON 响应是需要为每个应用程序定制的东西;只有您有必要的数据来准确决定应该支持哪些操作以及如何通过 JSON 进行通信。

例如,在过去,我使用了“响应嗅探器”逻辑(其中处理程序检查响应中的特定属性并处理以特定方式存在的每个属性)和“命令列表”逻辑(其中响应在这种情况下,总是包含一组对象,这些对象描述必须采取的特定操作,并且处理程序会执行它们。

我认为在大多数情况下不需要回复代码和消息,因为 HTTP 响应标头可以有效地传达此信息。

无论您决定做什么,.ajaxComplete(及其同级.ajaxSuccess.ajaxError)都可用于在客户端安装全局响应处理程序,该处理程序在每个请求完成时运行。

于 2012-10-04T23:43:33.437 回答
2

首先,您应该真正看一下来自 apigee 家伙的视频RESTful API 设计。它包含大量关于 RESTful API 的好建议。Brian Mulloy 还就响应的外观提供了反馈。

接下来,您应该查看一些用于开发 RESTful API 的 php 库。其中一些为您提供了如何返回响应的可靠方法。

有了这个,你应该很好地构建良好的 RESTful API。

于 2012-10-05T00:42:04.500 回答
1

为什么不使用一个中心函数来将 JSON 的最终回显作为响应。

function returnJSON($code,$data=array()){
  echo json_encode(
    array(
      'replyCode'=>$code,
      'replyMessage'=>getReturnMessageByCode($code),
      'returnData'=>$data
    )
  );
}

现在,在您为检索此数据而进行的每次 AJAX 调用结束时,您的 PHP 代码将执行以下操作 -

$data = fetchData();
if ($data){
  returnJSON('OK',$data);
}else{
  returnJSON('FAIL');
}
exit();

标准化你的回答是一个好主意,也是你的责任。除非您的框架有其他选项,否则由您决定是否使您的代码尽可能健壮。

于 2012-10-04T23:39:02.763 回答