Comments 12
Спасибо, очень интересно. Вопрос: как отреагирует механизм сериализации фреймворка, если ему встретятся модели, ссылающиеся друг на друга?
Вы, наверное, имеете в виду bidirectional связи? Все связи заменяются линками. К примеру, если в класс Car, описанный в статье, добавить двустороннюю связь типа many-to-one с классом Owner. То JSON будет выглядеть так:
Соответственно, Owner:
GET {root}/entity/Car/1
{
"id": 1,
"name": "Mazda MX-5",
"shortDescr": "двухместный родстер",
"longDescr": "очень длинное описание",
"owner": {
"links": [
{
"rel": "canonical",
"href": "{root}/entity/Owner/1"
},
{
"rel": "self",
"href": "{root}/entity/Car/1/owner"
}
]
}
...
}
Соответственно, Owner:
GET {root}/entity/Owner/1
{
"id": 1,
"name": "James Bond",
"cars": {
"links": [
{
"rel": "canonical",
"href": "{root}/entity/Owner/1/cars"
},
...
]
}
...
}
Войдёт ли это В JEE8 и кто ещё из ORM это поддерживает?
Это не есть часть спецификации JEE, соответственно не является стандартом. Это всего лишь одна из дополнительных функций EclipseLink. EclipseLink поставляется вместе c Weblogic.
Другие фрэймворки тоже умеют делать похожее. К примеру, вот, spring:
projects.spring.io/spring-data-rest/
Другие фрэймворки тоже умеют делать похожее. К примеру, вот, spring:
projects.spring.io/spring-data-rest/
Похоже на имплементацию HATEOAS. А поддерживаются ли Fetch.EAGER и fetchGroups? Например если я хочу вывести сразу одним запросом объекты и содержимое их OneToMany-полей? А параметры к запросам можно передавать?
Это и есть некоторая имплементация HATEOAS.
Планируется поддержка expand и expandAll параметров, позволяющий раскрывать связи. Есть вероятность, что это будет добавлено в этот релиз, но это пока под вопросом.
Параметры к запросам, конечно, передавать можно. Вот так:
Планируется поддержка expand и expandAll параметров, позволяющий раскрывать связи. Есть вероятность, что это будет добавлено в этот релиз, но это пока под вопросом.
Параметры к запросам, конечно, передавать можно. Вот так:
{root}/query/Car/findByYear;year=2014
А там можно какой-либо метод навесить который вызывался бы перед любым REST-запросом? К примеру для обеспечения безопасности.
Нет
Для обеспечения безопасности вот: wiki.eclipse.org/EclipseLink/Development/2.4.0/JPA-RS#Security
Стандартными срествами RESTful, если кратко.
Стандартными срествами RESTful, если кратко.
Sign up to leave a comment.
Краткий обзор новых возможностей JPA-RS в EclipseLink