В приложении Угловой5 я делаю HTTP-запрос к уровню данных, который используется несколькими приложениями.
Конечная точка возвращает массив длинных и сложных объектов JSON.
Является ли наилучшей практикой получать отдачу от службы данных более или менее «как есть», как работать напрямую с ней?
Или мне следует превратить его в массив объектов, соответствующих классу, который я определил как модель?
У меня опыт работы с Java, поэтому создание объектов из класса кажется мне правильным. Есть ли преимущества в том, чтобы делать это в Angular или любом другом контексте JS, или это будет пустой тратой времени?
Имеет смысл создать модель, соответствующую данным, которые вам требуются во внешнем интерфейсе. Это связано с тем, что у вас будет контроль над тем, какие все данные попадают в объект, у вас также будет консолидированный объект, по которому вы сможете точно определить, какие все данные содержатся. Кроме того, вы не будете переносить дополнительные данные на следующий уровень.
Вы можете просто написать класс или интерфейс, а затем импортировать его туда, где вы получаете свои данные, и создать объект этого класса / интерфейса и заполнить его данными.
например ->
//this is where you declare what all fields would be present
export Class Student {
id: number;
name: string;
}
//this is where you consume it
let students: Student[] = [];
//iterate over students and push the details to students array.
let student = new Student({
id : currentIteratedStudent.id,
name: currentIteratedStudent.name
})
DTO в машинописном тексте заменены интерфейсами. Практическое правило: если вы хотите иметь структуру, которая хранит данные и определяет поведение, используйте класс. Если вы хотите только хранить данные, используйте интерфейс. Это частично объясняется в руководстве по http-клиенту angular.io/guide/http#type-checking-the-response.