我正在写这个很棒的应用程序。这是我第一次尝试编写一个仅在另一侧使用 Restful 存储的单页完全 AJAX 应用程序。
现在...我编写了一些代码,到目前为止,我只需要使用 GET 进行简单的查询。然而,为了保持一切整洁,我确保我有一个“协议”:每个请求都有一个格式为:
{↵ "ack": "ERROR", "message": "required filter not passed",↵ "errors": { "name": "parameter required"↵ } }
万一出现错误(在这种情况下,我要求用户设置过滤器)。
现在......如果 GET确实有效,我还有一个“数据”字段,因此结果如下所示:
{↵ "ack": "OK", "data": { ... } }
现在我遇到了 Dojo 的问题,因为例如 dgrid 期望返回对象的“根”(可以这么说)中的数据,而不是“数据”键。
可能的解决方案:
1)破解我的 JsonRest 文件(它已经有点不同了,我添加了超时等,它毕竟是一个样板),因此,对于“查询”,它实际上使用 then() 操作结果并返回原始数据
2) 更改我的协议,如果 HTTP 状态为 200,并且由于没有错误消息或任何要给出的内容,它只是返回数据
3)以某种方式说服所有小部件在查询后使用返回的 JSON 的“数据”部分中的内容(这似乎不太可能)。
我应该走哪条路?一方面,我喜欢协议始终遵循相同格式的事实(尽管我承认它没用)。另一方面,更改 JsonRest 似乎很容易。但是再一次,第三方 API 可能不喜欢从返回对象的“数据”键中提取数据......
在这里做什么是明智的?
谢谢!
默克。