我已通过@Path
注释将REST服务/方法锚定到URI模板。它看起来像往常一样:
@GET
@Path("/message")
@Produces("application/json")
public Response getMessage() { ... }
但我的REST服务必须不区分大小写。现在我在我的所有代码中使用@Path
中的正则表达式:
@GET
@Path("/{message:[mM][eE][sS][aA][gG][eE]}")
@Produces("application/json")
public Response getMessage() { ... }
这看起来很奇怪。有没有我在规范中忽略的东西(我希望不是,请参阅this)或者有任何JAX-RS实现的特殊功能吗?现在我正在使用JBoss RESTeasy。
感谢。
答案 0 :(得分:3)
我不知道resteasy,但如果它支持所有java正则表达式语法,你可以使用(?i:message)
而不是你的模式。
答案 1 :(得分:1)
如果你确实需要使api不区分大小写并且你在网站的前端使用Apache,那么考虑在代码之外进行:使用全部小写的url定义你的API并使用Mod-Rewrite来无论客户端实际发送的是什么,当他们点击Web服务器时都会将URL更改为小写。这个blog post描述了如何执行此操作。