HAL встраивает ресурс только частично - PullRequest
0 голосов
/ 29 мая 2020

Я изучаю следующий сценарий. Мы используем 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")?

Спасибо заранее.

...