Angular 请求带有元数据的类型化响应数据
Angular requesting typed response data with metadata
来自我后端的所有响应(不包括错误)return 格式如下:
{
"data": [
...
]
"meta": { //Always same structure
"itemsPerPage": 20
"offset": 0
"pages": 6554
"total": 131071
}
}
在angular中,
接口:
export interface user {
name: string
id: number
}
export interface meta {
itemsPerPage: number
offset: number
pages: number
total: number
}
提出请求
this.http.get<user[]>(...).subscribe(data => {
this.users = data.data;
this.meta = data.meta
})
如何在此处设置正确的响应类型(我期望 属性 类型为 user[] 的数据和类型为 meta)?
您可以在此处使用泛型,以便重用接口。
export interface IDataResponse<T> {
data: Array<T>;
meta: {
itemsPerPage: number;
offset: number;
pages: number;
total: number;
};
}
现在在您的通话中指定。
this.http.get<IDataResponse<user>>('url/here')
.subscribe(response => /* do something with the response */);
来自我后端的所有响应(不包括错误)return 格式如下:
{
"data": [
...
]
"meta": { //Always same structure
"itemsPerPage": 20
"offset": 0
"pages": 6554
"total": 131071
}
}
在angular中, 接口:
export interface user {
name: string
id: number
}
export interface meta {
itemsPerPage: number
offset: number
pages: number
total: number
}
提出请求
this.http.get<user[]>(...).subscribe(data => {
this.users = data.data;
this.meta = data.meta
})
如何在此处设置正确的响应类型(我期望 属性 类型为 user[] 的数据和类型为 meta)?
您可以在此处使用泛型,以便重用接口。
export interface IDataResponse<T> {
data: Array<T>;
meta: {
itemsPerPage: number;
offset: number;
pages: number;
total: number;
};
}
现在在您的通话中指定。
this.http.get<IDataResponse<user>>('url/here')
.subscribe(response => /* do something with the response */);