我有一个表,其中包含完全限定的域名作为主键。我正在设置一个REST api来管理db(主要是插入和删除),但是我遇到了一个问题,发送一个带有url作为路径参数的http DELETE请求。
示例:
REST api servlet容器= http://www.someapp.com/api
要删除的成员资源ID = www.anotherapp.com/home
我想向http://www.someapp.com/api/www.anotherapp.com/home
泽西岛资源路径是:
@DELETE
@Path("/{url}")
public void deleteUrl(@HeaderParam("request-origin") String origin,
@PathParam("url") String url){
// some stuff
}
当我尝试这个时,我收到404错误。如何在http DELETE方法中将FQDN作为资源ID发送?
答案 0 :(得分:2)
正如bmargulies在评论中提到的那样,错误是由path参数中未转义的/
个字符引起的。对我有用的解决方案是在泽西岛的@Path
注释中添加一个正则表达式。
@DELETE
@Path("/{url : .+}")
public void deleteUrl(@HeaderParam("request-origin") String origin,
@PathParam("url") String url){
// some stuff
}