javascript - 将矩形响应转换为模型对象

标签 javascript angularjs model restangular

我们正在构建一个 AngularJS 应用程序,并使用 Restangular 作为我们的 REST-API。

现在我的想法是将 API 的响应转换为类型化模型 JS 对象。因此,如果字段名称与我们的代码逻辑不同,并且我们在前端代码中独立于 API 中的命名更改,我们不会过多依赖 API。但这是这样做的方法吗?

当谈到我们想要回发到 API 的时候,我迷失了方向。 “重新标准化”对象的所有功能在新类型化模型对象中都丢失了。如何将其转换回 API 发布?

我的方法错了吗?

但是如果 API 更改了某些属性,那么可靠的代码也不会中断呢?或者,如何在不查看 REST-API 响应的情况下查看我的模型提供的属性。在我的经典编程方式中,我打开模型类并可以查找模型对象提供的所有属性!?

谢谢

这里是一些简化的实现示例代码:

function TypedModel(data) {
  this.foo = data.bar;
}

var typedModel;
Restangular.one('service', 'infos').get().then(function(data) {
  typedModel = new TypedModel(data);
});

最佳答案

我不认为你的方法有什么问题,没有。也许您习惯了强类型语言,例如 Java?我花了一些时间来适应 Javascript,因为它的类型非常松散。

我不确定这是否有帮助,但我已经开始按如下方式设置我的类(class):

function TypedModel(pojo) {
    if (!TypedModel.validate(pojo)) {
        //Throw an exception if the POJO is not valid.
    }
    this.foo = pojo.foo;
    this.bar = pojo.bar;
    this.fooBar = pojo.fooBar;
}

TypedModel.validate = function(pojo) {
    return (pojo.foo && pojo.bar && pojo.fooBar);
};

这意味着我可以准确地看到我的类应该具有哪些属性,如果 API 发生变化,我就知道我需要更改我的类。

但我也正在转向 Typescript,因为它使处理模型变得更加容易。我绝对建议您研究一下 TS。

欢迎评论:)

关于javascript - 将矩形响应转换为模型对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34514184/

相关文章:

javascript - AngularJS : The correct way to factory returning object?

javascript - 如何将 angular.module 文件中的controller.js 文件设为 "import"

php - 在 php 中正确实现模型类

php - 使用纯 jquery/javascript 创建弹出确认框

javascript - CoffeeScript - 将参数传递给 super 构造函数时出现问题

javascript - Twitter Bootstrap - 如何在工具提示弹出窗口和元素之间添加更多边距

javascript - 合并范围后,Angular 中的字段无法正确重复

ios - 如何处理模型类中的数组?

c# - 为反序列化匹配此 JSON 的模型,带破折号的字段名称

javascript - modal.js 中的 if 条件令人困惑