为了符合我们的内部标准,我们拥有采用该格式的URL
/RESOURCE/{id}/COMPONENT
试着做点什么
@RestResource(path = "/RESOURCE/{id}/COMPONENT")
public Optional<Resource> findById(long id);
不起作用(它确实接受/RESOURCE/{ID}
的请求)。有没有办法让这项工作?
据我所知,从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设计,但似乎不可能出现这种情况。