我如何设计我的模型,在打字稿,我得到了以下的反应?
{
"data":[
{
"name": "XYZ",
"id": "1"
},
{
"name" :"Abc",
"id": "2"
}
]
}我试过的是:
export class responseModel<T>{
data:T;
}
export class model{
name:string;
id: number;
}你的建议是什么?所有数据都将作为{ data: THE_DATA_OBJECT }的一部分提供。
{
data: []
}
getInfo(): Observable<responseModel<model[]>> {
// API HTTP Call
}发布于 2018-09-21 12:27:03
https://stackoverflow.com/a/45405240/5695162,因为从HTTP产生的反序列化JSON值永远不是类的实例
@Angular StyleGuide考虑为数据模型使用接口。
export interface Model{
id: number;
name: string;
}
export interface ResponseModel{
data:Array<Model>;
}
getInfo(): Observable<responseModel>{
return this._httpClient.get<resposneModel>('url);
}发布于 2018-09-21 12:21:06
data应该具有model[]类型,而整个响应类型为responseModel。
export class responseModel{
data:model[];
}
export class model{
name:string;
id: number;
}
getInfo(): Observable<responseModel> {
// API HTTP Call
}发布于 2018-09-21 12:38:56
我认为这是一个主观的问题,所以我会分享我的经验,当我有一个类似的情况。
我使用{ data: THE_DATA_OBJECT }的项目响应的所有后端端点。我认为设计我的所有响应模型都需要一个“数据”前缀,所以我基本上在api服务中打开了“数据”前缀,而不是这样做。
如下所示:
genericHttpCall<T>(path: string, method: string, params: any}: Observable<T> {
return this.httpClient.request().pipe(map(response => response.data));
}因此,这基本上可以避免做class responseModel<T>,这样我就可以自由地设计真正的模型,而不是让后端影响我的模型结构。
此外,对于响应模型,我总是使用interface而不是class,因为它们是不涉及构造函数或方法的普通数据模型。除非您想使模型适用于您的业务逻辑。
https://stackoverflow.com/questions/52443544
复制相似问题