我们正在构建一个AngularJS应用程序并使用Restangular作为我们的REST-API。
现在我的想法是将API的响应转换为类型化的JS对象。因此,如果字段名与我们的代码逻辑不同,我们就不会过分依赖API,并且我们在前端代码中独立于命名API中的更改。但这是做到这一点的方式吗?
当我们想要回发给API时,我迷失了方向。 " restanguarlized"的所有功能。对象在新类型模型对象中丢失。如何将其转换回API?
我的方法有误吗?
但是,如果API改变了一些属性,那么固态代码怎么会破坏呢?或者,如何在不查看REST-API响应的情况下查看模型提供的属性。在我的经典编程方式中,我打开了我的Model-Class,可以查找模型对象提供的所有属性!?
由于
这里是一些简化的实现代码示例:
function TypedModel(data) {
this.foo = data.bar;
}
var typedModel;
Restangular.one('service', 'infos').get().then(function(data) {
typedModel = new TypedModel(data);
});

答案 0 :(得分:0)
我认为你的方法没有任何问题,不。也许你已习惯了强类型语言,比如Java?我花了一些时间来调整Javascript,因为它是如此松散的类型。
我不确定这是否会有所帮助,但我已按照以下方式开始设置课程:
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。
欢迎评论:)