jax-rs允许使用regex匹配pathparams,如下所示:
@GET @Path("/users/{username : [a-zA-Z][a-zA-Z_0-9]}") public Response getUserByUserName(@PathParam("username") String username) { ... }
但它是否允许以某种方式匹配queryparams?
7fhtutme1#
不允许为queryparams指定regex。作为一种解决方法:只需定义您自己的java数据类型,作为这个查询参数的表示,然后将其转换为 String 如果你必须处理 String s
String
juzqafwq2#
不幸的是,没有这样的方法来保护queryparams。您可以在服务器端类上使用一个辅助方法来检查它们的值。
@GET @Path("/myPath") public Response yourMethod(@QueryParam("code") long code, @QueryParam("description") String desc){ if(isParametersValid(code,desc)){ //proceed with your logic }else{ return Response.status(Response.Status.FORBIDDEN).entity("The passed parameters are not acceptable").build(); } } private boolean isParametersValid(long code, String desc){ //check }
2条答案
按热度按时间7fhtutme1#
不允许为queryparams指定regex。作为一种解决方法:只需定义您自己的java数据类型,作为这个查询参数的表示,然后将其转换为
String
如果你必须处理String
sjuzqafwq2#
不幸的是,没有这样的方法来保护queryparams。您可以在服务器端类上使用一个辅助方法来检查它们的值。