Я играю с crnk, пытаясь определить биты, которые я не могу найти в документах. Я объясню свою проблему на стандартном примере crnk: https://github.com/crnk-project/crnk-framework/tree/master/crnk-integration-examples/spring-boot-example.
Между проектами и задачами существует отношение один ко многим (другие ресурсы не имеют значения). Если я правильно понимаю (в примере используется явно устаревший параметр opposite
@JsonApiRelation), владельцем отношения является 1Task.project1. Теперь я хочу перечислить ресурсы, отфильтрованные по некоторым свойствам связанных с ними ресурсов. Например, это работает как ожидалось (оставляя некоторые незначительные биты из ответа):
GET http://127.0.0.1:8080/api/tasks?filter[project.id]=121
{
"data" : [ {
"id" : "1",
"type" : "tasks",
"links" : {
"self" : "http://127.0.0.1:8080/api/tasks/1"
},
"attributes" : {
"name" : "Create tasks",
"description" : null
},
"relationships" : {
"project" : {
"data" : {
"id" : "121",
"type" : "projects"
}
}
} ]
}
Но фильтрация в обратном направлении невозможна:
GET http://127.0.0.1:8080/api/projects?filter[tasks.id]=1
{
"data" : [ ]
}
Ожидается ли это при настройкересурсы (см. ссылку выше)? Если да, что нужно сделать, чтобы фильтрация работала в обоих направлениях?