Javascript 在请求之前,如何准备对象以符合服务要求?
当服务需要类似in方法的对象来更改名称时:Javascript 在请求之前,如何准备对象以符合服务要求?,javascript,rest,typescript,Javascript,Rest,Typescript,当服务需要类似in方法的对象来更改名称时: { user: { data: { name: string } } } 但是,我有一个对象 { user: { age: 18, height: 150, weight: 80 data: { name: 'John', surname: 'Juhn' } } } 如何准备对象与服务兼容 是否使用对象的副本删除不需要的属性,以免丢失数据 例
{
user: {
data: {
name: string
}
}
}
但是,我有一个对象
{
user: {
age: 18,
height: 150,
weight: 80
data: {
name: 'John',
surname: 'Juhn'
}
}
}
如何准备对象与服务兼容
是否使用对象的副本删除不需要的属性,以免丢失数据
例如
或者发送具有其他属性的对象?当然,您需要传递属性的确切数量 为什么??不要传递服务不需要的任何数据。此外,如果黑客能够捕获您的数据,他/她将只获取该数据,而不是所有数据 考虑一个例子,当我只需要将用户名传递给我的Web Api时。但我的对象也包含电子邮件。为什么黑客还需要收到电子邮件?有了名字,他什么也做不了,但有了邮件,他可以做很多其他的事情
export function removeUnnecessaryProperty(object: Object, ...necessaryKeys: string[]) {
Object.keys(object).forEach(key => {
if (necessaryKeys.indexOf(key) < 0) { delete object[key]; };
});
}
let objectToRequest = JSON.parse(JSON.stringify(object));
removeUnnecessaryProperty(objectToRequest.data, 'name');
removeUnnecessaryProperty(objectToRequest, 'data');
export function createObjectWithProperty(object: Object, ...Keys: string[]) {
let newObject: Object = {};
Keys.map(key => {
newObject[key] = object[key];
});
return newObject
}
let objectToRequest = {data: undefined}
objectToRequest.data = createObjectWithProperty(object.data, 'name');