快速业务通道

使用JAX-RS简化REST应用开发 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20
rce 定位器上没有任何 @GET、@POST、@PUT、@DELETE 或者自定义的 @HttpMethod。清单 1 展示了示例应用中使用的根 Resource 类及其 Resource 方法。

清单 1. 根 Resource 类

@Path("/") public class BookkeepingService {    ......    @Path("/person/")    @POST    @Consumes("application/json")    public Response createPerson(Person person) {      ......    }    @Path("/person/")    @PUT    @Consumes("application/json")    public Response updatePerson(Person person) {      ......    }    @Path("/person/{id:\\d+}/")    @DELETE     public Response deletePerson(@PathParam("id")    int id) {      ......    }    @Path("/person/{id:\\d+}/")    @GET    @Produces("application/json")    public Person readPerson(@PathParam("id")    int id) {      ......    }    @Path("/persons/")    @GET    @Produces("application/json")    public Person[] readAllPersons() {      ......    }    @Path("/person/{name}/")    @GET    @Produces("application/json")    public Person readPersonByName(@PathParam("name")    String name) {      ...... } ......

使用JAX-RS简化REST应用开发(3)

时间:2011-01-29 IBM 殷钢 张昊

参数标注

JAX-RS 中涉及 Resource 方法参数的标注包括:@PathParam、@MatrixParam、@QueryParam、@FormParam、@HeaderParam、 @CookieParam、@DefaultValue 和 @Encoded。这其中最常用的是 @PathParam,它用于将 @Path 中的模板变量映射到方法参数,模板变量支持使用正则表达式,变量名与正则表达式之间用分号分隔。例如对 清单 1 中所示的 BookkeepingService 类,如果使用 Get 方法请求资源”/person/jeffyin”,则 readPersonByName 方法将被调用,方法参数 name 被赋值为”jeffyin”;而如果使用 Get 方法请求资源”/person/123”,则 readPerson 方法将被调用,方法参数 id 被赋值为 123。要了解如何使用其它的参数标注 , 请参考 JAX-RS API。

JAX-RS 规定 Resource 方法中只允许有一个参数没有打上任何的参数标注,该参数称为实体参数,用于映射请求体。例如 清单 1中所示的 BookkeepingService 类的 createPerson 方法和 updatePerson 方法的参数 person。

参数与返回值类型

Resource 方法合法的参数类型包括:

原生类型

构造函数接收单个字符串参数或者包含接收单个字符串参数的静态方法 valueOf 的任意类型

List<T>,Set<T>,SortedSet<T>(T 为以上的 2 种类型)

用于映射请求体的实体参数

Resource 方法合法的返回值类型包括:

void:状态码 204 和空响应体

Response:Response 的 status 属性指定了状态码,entity 属性映射为响应体

GenericEntity:GenericEntity 的 entity 属性映射为响应体,entity 属性为空则状态码为 204,非空则状态码为 200

其它类型:返回的对象实例映射为响应体,实例为空则状态码为 204,非空则状态码为 200

对于错误处理,Resource 方法可以抛出非受控异常 WebApplicationException 或者返回包含了适当的错误码集合的 Response 对象。

Context 标注

通过 Context 标注,根 Resource 类的实例字段可以被注入如下类型的上下文资源:

Request、UriInfo、HttpHeaders、Pr

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号