2018-11-17

RESTEasy

hsf模板工程使用RESTEasy实现RESTful风格API。

关于 RESTful API

Representational State Transfer,翻译是”表现层状态转化”。 面向资源是REST最明显的特征,对于同一个资源的一组不同的操作。资源是服务器上一个可命名的抽象概念,资源是以名词为核心来组织的,首先关注的是名词。REST要求,必须通过统一的接口来对资源执行各种操作。对于每个资源只能执行一组有限的操作。(7个HTTP方法:GET/POST/PUT/DELETE/PATCH/HEAD/OPTIONS)

符合REST设计标准的API,即RESTful API。REST架构设计,遵循的各项标准和准则,就是HTTP协议的表现,换句话说,HTTP协议就是属于REST架构的设计模式。

关于 RESTEasy

RESTEasy 是 JBoss 的一个开源项目,提供各种框架构建 RESTful Web Services 和 RESTful Java 应用程序。它是 JAX-RS 规范的一个完整实现并通过 JCP 认证。RESTEasy 还提供一个 RESTEasy JAX-RS 客户端调用框架,能够很方便与 EJB、Seam、Guice、Spring 和 Spring MVC 集成使用,支持在客户端与服务器端自动实现 GZIP 解压缩。

RESTEasy 常用注解

@GET,@POST,@PUT,@DELETE注解分别对应HTTP请求的查询,新增,修改,删除方法。

更多注解如:@FormParam、@PathParam、@QueryParam、@HeaderParam、@CookieParam、@MatrixParam、@Context可参考: https://www.cnblogs.com/chen-lhx/p/5599806.html 和这里https://blog.csdn.net/github_35758702/article/details/52614282

一个例子:

@Path("/library")
public class Library {

   @GET
   @Path("/books")
   public String getBooks() {...}

   @GET
   @Path("/book/{isbn}")
   public String getBook(@PathParam("isbn") String id) {
      // search my database and get a string representation and return it
   }

   @PUT
   @Path("/book/{isbn}")
   public void addBook(@PathParam("isbn") String id, @QueryParam("name") String name) {...}

   @DELETE
   @Path("/book/{id}")
   public void removeBook(@PathParam("id") String id {...}

}

说明:

  • 类或方法是存在 @Path 注解或者 HTTP 方法的注解。

  • 如果方法上没有 HTTP 方法的注解,则称为 JAXRSResourceLocators。

  • @Path 注解支持正则表达式映射。

RESTEasy更多特性和使用方法请参考 官方文档。

你可能感兴趣的:(2018-11-17)