Javascript 在请求之前,如何准备对象以符合服务要求?

Javascript 在请求之前,如何准备对象以符合服务要求?,javascript,rest,typescript,Javascript,Rest,Typescript,当服务需要类似in方法的对象来更改名称时: { user: { data: { name: string } } } 但是,我有一个对象 { user: { age: 18, height: 150, weight: 80 data: { name: 'John', surname: 'Juhn' } } } 如何准备对象与服务兼容 是否使用对象的副本删除不需要的属性,以免丢失数据 例

当服务需要类似in方法的对象来更改名称时:

{
  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');