为了符合内部标准,我们提供了采用以下格式的URL
/RESOURCE/{id}/COMPONENT
试图做类似的事情
@RestResource(path = "/RESOURCE/{id}/COMPONENT")
public Optional<Resource> findById(long id);
不起作用(尽管它确实接受/RESOURCE/{ID}
处的请求)。有办法使这项工作吗?
答案 0 :(得分:0)
据我从spring data rest documentation所了解,这似乎不可能。
您可以执行类似的操作http://localhost:8080/users/search/RESOURCE?id=1
@RestResource(path = "/RESOURCE")
public Optional<Resource> findById(@Param("id")long id);
但是,如果您将使用@RestResource(path = "/RESOURCE/{id}/COMPONENT")
这样的URL,然后它将返回
{
"_links": {
"findById": {
"href": "http://localhost:8080/users/search/RESOURCE/%7Bid%7D/COMPONENT{?id}",
"templated": true
},
"self": {
"href": "http://localhost:8080/users/search"
}
}
}
从这里您可以看到,spring无法解析URL,并且会出现无效字符问题。我可以理解您正在尝试使用rest api设计,但这种情况似乎是不可能的。