Всем доброго дня.
От сервера приходят данные но обернутые в собственный формат ответа:
{
success: boolean; // статус выполнения запроса
data: any | null; //здесь может вернуться любой объект/массив объектов/null/пустые объект или массив
msg: string | null; // текст ошибки либо null в случае успеха
}
Т.е. все данные приходят в data...
Как поступаю сейчас:
Сделал интерфейс:
export interface IResponse<T> {
success: boolean;
data: T | null;
msg: string | null;
}
И сделал функцию обработчик:
getDataResponse<T>(response: IResponse<T>) {
if (response && response.data) {
return response.data;
} else {
return null;
}
}
Ну и собственно в провайдерах вызываю все это следующим образом:
/**
* Получение информации об авторизованном пользователе
* @param {number} id
* @returns {Observable<IUser>}
*/
public getUserInfo(id: number): Observable<IUser> {
const url = `${env.url}/${id}/info`;
return this.httpClient
.get(url)
.pipe(
map((response: IResponse<IUser>) => this.getData(response))
);
}
Как поступить с таким возвратом от сервера? Возможно есть лучше/правильней решение?