Jaxrs (RESTEasy) @Path 正则表达式中的多个子资源
Jaxrs (RESTEasy) multiple sub-resources in @Path regexp
我在使用正则表达式 @Path 参数时遇到了一个小问题。我正在尝试匹配路径 a 或 b。我一直在尝试使用:
@Path("/{a: path\/to\/resource|resource}")
所以
或
将执行相同的方法。当我使用两个正斜杠时,我的问题似乎出现了。我只能使用
访问该方法
但不是另一个。
但是在做的时候:
@Path("/{a: path\/resource|resource}")
它按预期工作,我可以使用
访问该方法
或
我尝试进行否定前瞻以排除查询的第一部分,并且仅 return 常见 属性(资源):
@Path("/{a: (?!path\/to\/)resource}")
但这也没有用。它与我的第一个实现具有相同的效果,我只能访问 /resource。
我也试过:
@Path("/{a: (path\/to)?}{b: (\/)?}resource")
它按预期工作,但如果我查询也能工作
或
因此在我只想有两个时创建了 4 个条目 URL。
我是否遗漏了与正斜杠有关的内容,为什么我的正则表达式模式不能包含多个正斜杠?
我想我可能已经找到问题的原因了。
我有几个其他路径使用相同的 URL (/path/to/resource) 不同的 HTTP 方法(GET、PUT、DELETE)。我怀疑它在执行正则表达式之前试图将 path/to/resource 与其中一种方法进行匹配。我对这种怀疑的推理是,当我将 POST 方法重命名为:
@Path("/{a: (notPath\/to\/)?}resource"}
它按预期工作。我能够从两者那里得到回复
localhost:1111/notPath/to/resource
和
localhost:1111/resource
我在使用正则表达式 @Path 参数时遇到了一个小问题。我正在尝试匹配路径 a 或 b。我一直在尝试使用:
@Path("/{a: path\/to\/resource|resource}")
所以
或
将执行相同的方法。当我使用两个正斜杠时,我的问题似乎出现了。我只能使用
访问该方法但不是另一个。
但是在做的时候:
@Path("/{a: path\/resource|resource}")
它按预期工作,我可以使用
访问该方法或
我尝试进行否定前瞻以排除查询的第一部分,并且仅 return 常见 属性(资源):
@Path("/{a: (?!path\/to\/)resource}")
但这也没有用。它与我的第一个实现具有相同的效果,我只能访问 /resource。
我也试过:
@Path("/{a: (path\/to)?}{b: (\/)?}resource")
它按预期工作,但如果我查询也能工作
或
因此在我只想有两个时创建了 4 个条目 URL。
我是否遗漏了与正斜杠有关的内容,为什么我的正则表达式模式不能包含多个正斜杠?
我想我可能已经找到问题的原因了。
我有几个其他路径使用相同的 URL (/path/to/resource) 不同的 HTTP 方法(GET、PUT、DELETE)。我怀疑它在执行正则表达式之前试图将 path/to/resource 与其中一种方法进行匹配。我对这种怀疑的推理是,当我将 POST 方法重命名为:
@Path("/{a: (notPath\/to\/)?}resource"}
它按预期工作。我能够从两者那里得到回复
localhost:1111/notPath/to/resource
和
localhost:1111/resource