【发布时间】:2020-03-03 12:57:19
【问题描述】:
我正在玩 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" : [ ]
}
这是在资源设置下预期的吗(见上面的链接)?如果是,必须做什么才能使过滤在两个方向上都起作用?
【问题讨论】: