我有一条REST路由来创建使用路径参数的资源。
此处给出的答案: https://stackoverflow.com/a/26094619/2436002 显示了如何使用UriInfo上下文轻松地为响应创建适当的位置标头。
document.querySelector('#reward-button').addEventListener('click', getReward);
但是,这会在接收到的URI中包含路径参数,这将不会导致获得正确的资源。
POST:http://localhost/api/resource/ {type},其pathparam type =“ system”
将返回http://localhost/api/resource/system/123(生成的ID为123) 而正确的URI是 http://localhost/api/resource/123
那么,如何获得正确的资源位置以返回?
答案 0 :(得分:1)
是的,按照链接中的方式进行操作,假设您有一个父子关系,您将在其中发布到集合终结点并创建一个子资源。对于您的用例,情况并非如此。使它起作用的一种方法是仅使用UriBuilder.fromResource()
。然后只需调用resolveTemplate()
来输入"type"
的值。
URI createdUri = UriBuilder.fromResource(Resource.class)
.resolveTemplate("type", createdUUID.toString()).build();
return Response.created(uri).build();
这会给你http://localhost/api/resource/123