我正在构建一个向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;
})