![](/img/trans.png)
[英]getting JSON data from REST API by javascript displays partial data
[英]JavaScript mapping JSON data from external REST API
对于我正在构建的Web应用程序的前端,我正在使用RESTful Web服务来获取数据。 这样的呼叫和响应可能如下所示:
// GET api.example.com/persons/3
{
p_id: 3,
p_fn: 'Jon',
p_ln: 'Smith',
p_addr: {
str: 'Baker Street',
city: 'London',
cntry: 'GB'
},
// and more stuff...
}
我在应用程序中不需要所有这些数据,因此我决定将它们映射到我自己的类中。 这还带来了以下优点:重命名和重组属性,与外部API分离,以及添加一些方法的能力:
class Person {
name: {
first: string,
last: string
};
country: string;
getFullName(): string {
return this.name.first + ' ' + this.name.last;
}
}
本示例使用TypeScript,但也可以使用ES6类创建
在我想要更改该对象的属性之前,它可以正常工作。
例如,该Person
的国家必须更改,因为他移居法国。 并且还编辑了他的名字,因为有一个错误:
person.country = 'FR'
person.name.first = 'John'
现在,必须将更改发送回外部服务:
// PUT api.example.com/persons/3
{
p_id: 3,
p_fn: 'John',
p_ln: 'Smith',
p_addr: {
str: 'Baker Street',
city: 'London',
cntry: 'FR' // This is where my example falls apart 😅
},
// and more stuff...
}
但是,如果未更改任何属性,则根本不能执行该调用,因此必须对此进行某种检测。
因此,基本上,我经常不得不在这些本地实例和类似DTO的对象之间来回转换。 进行此设置的最佳方法是什么?
有什么标准的方法可以做到这一点吗? 我听说过一些有关ORM或持久性模式的内容,但是其中任何一种适用于JavaScript吗? 是否有最佳实践来执行此客户端操作?
如果要发回数据,并且它是UPDATE而不是PATCH,则您的类应包含更新资源所需的所有属性。
如何为您传递JSON的类创建构造函数方法 ? 还有toJSON类方法,您可以在其中将属性解析为格式正确的JSON。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.