资源定位之注解相关简介
@QueryParam注解
JAX-RS2定义了@QueryParam注解来定义查询参数,如下表所示
接口描述 | 资源地址 |
---|---|
分页查询列表数据 | /query-resource/test?start=24&size=10 |
排序并分页查询列表收 | /query-resource/test?limit=5&sort=program |
查询单项数据 | /query-resource/test?id=9 |
1、分页查询
/**
*
* @param start 起始条目 参数都使用了final进行限制
* 符合Checkstyle风格 即输入参数只作为逻辑算法的依据使用
* 其本身并不会再找个过程中被修改
* @param size 查询的条目
* @return
*/
@Path("/page") //page?start=0&size=10 访问
@GET
@Consumes(MediaType.APPLICATION_JSON) //指定请求返回的响应体为JSON
@Produces(MediaType.APPLICATION_JSON)
public User getByPaging(@QueryParam("start") final int start,@QueryParam("size") final int size){
return null;
}
2、排序查询
/**
* @param limit 分页查询条目
* @param sortName 排序规则
* @return
*/
@Path("/order") //order?limit=10&sort=web 访问
@GET
@Consumes(MediaType.APPLICATION_JSON) //指定请求返回的响应体为JSON
@Produces(MediaType.APPLICATION_JSON)
public User getByOrder(@QueryParam("limit") final int limit,@QueryParam("sort") final int sortName){
return null;
}
3、单项查询
/**
* @param segId
* @return
*/
@Path("/query") //order?id=10 访问
@GET
@Consumes(MediaType.APPLICATION_JSON) //指定请求返回的响应体为JSON
@Produces(MediaType.APPLICATION_JSON)
public User getByQuery(@QueryParam("id") final int segId){
return null;
}
@PathParam注解
JAX-RS2定义@PathParam注解来定义路径参数—-每个参数对应一个子资源,示例列表如下:
接口描述 | 资源地址 |
---|---|
基本路径参数 | /path-resource/Eric |
J结合查询参数 | /path-resource/Eric?hometown=Luoma |
带有标点符号的资源路径 | /path-resource/199-1999 /path-resource/01,2012-12,2014 |
子资源变长的资源路径 | /path-resource/Asia/china/northeast/liaoning/shenyang/huanggu //path-resource/q/restful;program=java;type=web /path-resource/q2/restful;program=java;type=web |
1、@Path注解
JAX-RS2定义@Path注解来定义资源路径,@Path接收一个value参数来解析资源路径地址,可以使用静态定义的方式外,也可以使用动态变量的方式,格式:{参数名称:正则表达式},例如资源地址:/path-resource、199-1999.参考示例如下
@Path("{from:\\d+}-{to:\\d+}") //order?id=10 访问
@GET
@Consumes(MediaType.APPLICATION_JSON) //指定请求返回的响应体为JSON
@Produces(MediaType.APPLICATION_JSON)
public User getByCondition(@QueryParam("from") final Integer from, @PathParam("to") final Integer to) {
return null;
}
在来一个复杂的例子:/path-resource、01,2012-12,2014(引入了逗号(,))
@Path("{
beginMonth: