java - 查找 Jersey 父路径

标签 java jersey jax-rs

我有一个 Jersey 2.x 端点,用户可以 POST 到该端点以更新父资源上的特定属性。成功后,我想返回 303 状态并在 Location header 中指定父资源的路径。

例如。如果用户发布到:

http://example.com/api/v1/resource/field

然后在响应中设置位置 header :

http://example.com/api/v1/resource

似乎应该有一种直接的方法可以使用 UriInfo/UriBuilder 来做到这一点,但我不知道如何在没有困难的情况下做到这一点编写稍后可能会损坏的代码。

最佳答案

UriInfo.getBaseUriBuilder() 获取基础 URI(假设是 http://example.com/api) ,然后在 XxxResource 路径后附加 builder.path(XxxResource.class) .

然后从构建的URI,返回Response.seeOther(uri).build(); .完整示例:

@Path("/v1/resource")
public class Resource {

    @GET
    public Response getResource() {
        return Response.ok("Hello Redirects!").build();
    }

    @POST
    @Path("/field")
    public Response getResource(@Context UriInfo uriInfo) {
        URI resourceBaseUri = uriInfo.getBaseUriBuilder()
            .path(Resource.class)
            .build();
        return Response.seeOther(resourceBaseUri).build();
    }
}

关于java - 查找 Jersey 父路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30446373/

相关文章:

java - 通过访问 token 对 REST 服务进行用户授权

java - JAX-RS 是否支持输入流?

java - 如何在 Jersey WADL 中包含类型同时返回 Response

java - 如何使用Java API将配置单元字符串查询转换为抽象语法树?

java - 使用 servlet、jquery、ajax、json 进行链式选择

java - 将 WAR 文件上传到 WebSphere 6.1 时出现问题

java - Jersey/JAX-RS ExceptionMappers 和继承

java - 如何使用超链接将表中的索引作为 struts 中的参数发送

java - 从 Tycho P2 存储库切换到 Eclipse Target 文件

jakarta-ee - JAX-RS 运行时如何处理本示例中使用子资源的 PUT 请求?