gpt4 book ai didi

java - 除了方法之外还使用 header 将请求路由到带注释的方法

转载 作者:行者123 更新时间:2023-11-30 06:15:22 31 4
gpt4 key购买 nike

我想知道除了 HTTP 方法之外,JAX-RS 是否可以使用 header 路由请求。事实上,我找不到这样做的方法。

我想到了类似的东西,其中 x-header 是一个标题:

@Path("/contacts/")
public class MyResource {
@POST
@Header("x-header:content1")
public void method1(MyContent1 content) {
(...)
}

@POST
@Header("x-header:content2")
public void method2(MyContent2 content) {
(...)
}
}

这个问题遵循这个答案:How to Update a REST Resource Collection .

非常感谢您的帮助!蒂埃里

最佳答案

如果您需要影响请求匹配/路由过程,则必须使用 JAX-RS 过滤器 - 特定的预匹配过滤器(@PreMatching)[这将在 JAX-RS 2.0 及更高版本中起作用]如果使用 header 信息资源方法,它没有意义,因为 JAX-RS 已经匹配了方法

这是过滤器实现的整体流程

  1. 使用 ContainerRequestContext 获取 header 信息
  2. 根据 header 值应用您的业务标准
  3. 现在的诀窍是能够路由到所需的资源方法 - 您的一个选择是使用 ContainerRequestContext 的 setRequestUri 方法,并在不同的 URI 上设置不同的资源方法(使用@Path)

Jersey 文档可能会有所帮助 -- https://jersey.java.net/documentation/latest/filters-and-interceptors.html#d0e9538

关于java - 除了方法之外还使用 header 将请求路由到带注释的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28946704/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com