Я изучаю следующий сценарий. Мы используем Spring Hate Oas и Spring Data REST для создания нашего API. Наш API используется библиотекой Python, которую мы также пишем, клиентом cli и нашим интерфейсом Angular. Фронтенд всегда имеет приоритет. Теперь у нас есть следующие два ресурса:
@Data
public class Professor {
private String name;
private int age;
private Student phdStudent;
}
@Data
public class Student {
private String name;
private int age;
private int semester;
}
Теперь наш интерфейс хочет запросить определенного c профессора. В этом списке также есть какая-то страница с подробностями, на которой вы можете найти соответствующего студента. На этой странице сведений нам нужно только имя ученика, потому что когда вы переходите к этому определенному c ученику, делается новый вызов API для получения всего объекта ученика. Как я уже упоминал, мы используем HAL. Интересно, теперь что-то вроде действительного HAL:
"name": "Professor Buchmann",
"age": 66
"_embedded": {
"phdStudent": {
"name": "PhD Student 01",
"_links": {
"self": {
"href": "http://domain.io/students/1"
}
}
}
},
"_links": {
"self": {
"href": "http://domain.io/professors/2"
}
}
Как вы можете видеть, я опустил возраст студентов и семестр. Это действительный HAL? В противном случае можно ли ввести проекцию для отображения только имени ученика и использования его в ссылке на себя встроенного phdStudent ("href": "/ student / 1? Projection = name")?
Спасибо заранее.