带路径参数的Spring RepositoryRestResource?

时间:2017-05-27 06:38:17

标签: java spring rest spring-data

Spring中的RepositoryRestResource注释在定义的路径片段上创建端点,例如

@RepositoryRestResource(path = "expenses")

会创建端点,如:

/expenses
/expenses/search
/expenses/1

有没有办法在该存储库中包含路径参数?我希望看到仅与特定用户相关的费用,例如“迈克尔”:

/users/michael/expenses
/users/michael/expenses/search
/users/michael/expenses/1

编辑1

我设法通过在User上使用相同的注释来到达那里,这导致了正确的终点:

/users/1/expenses

但是我无法在该资源上发布任何内容 - 服务器以空体回答。

2 个答案:

答案 0 :(得分:0)

我找到了一个解决方案,你必须在一般项目集合上发帖(在我的案例中为expenses),并将对包含实体的引用放入有效载荷中:

POST http://localhost:8080/expenses

{
    "description": "new car",
    "comment": "way too expensive...",
    "amount": 3339,
    "creationDateTime": "2017-05-26T13:12:11.000+0000",
    "user":"http://localhost:8080/users/1"
}

请注意有效负载的最后一行。它指的是连接的实体。

此解决方案有效,但这不是我希望它的工作方式。我希望用户发布自己的费用,而不是在一般费用表上发布自己的费用。

答案 1 :(得分:0)

我认为this就是您所需要的。

希望得到这个帮助。