我应该在哪里将JSON从API映射到JavaScript类

时间:2017-04-14 19:28:24

标签: javascript json api

我正在构建一个向Web发出GET请求的JavaScript Web应用程序。它将API提供的模型转换为自己的模型(类)。这种转变的最佳位置在哪里?

选项1:在构造函数中? 如果我想从API响应之外的其他内容创建新用户,这可能会很麻烦,因为我只能从API响应中删除User

class User {
  constructor(apiResponse){
    this.name = apiResponse.userName;
    this.date = apiResposne.dateCreated;
  }
}

选项2:在类的静态工厂方法中? 这可能很麻烦,因为不同的API端点可能需要稍微不同的映射。我可能必须根据数据的来源创建其他fromApi方法。

User.fromApi = function(apiResponse) {
    var user = new User();
    user.name = apiResponse.userName;
    user.date = apiResposne.dateCreated;
    return user;
}

选项3:在从API获取的服务/类中: 如果我有多个必须执行此映射的提取方法(或稍微不同的版本),这可能是非DRY。

fetch('/user/3').then((apiResponse)=> {
  var  user = new User();
  user.name = apiResponse.userName;
  user.date = apiResposne.dateCreated; 
})

0 个答案:

没有答案