跳到主要内容

十一、什么是RestFul风格?

RESTFUL是一种网络应用程序的设计风格和开发方式,是一种软件架构风格,而不是标准,只是提供了一组设计原则和约束条件。基于HTTP,可以使用XML格式定义或JSON格式定义。RESTFUL适用于移动互联网厂商作为业务使能接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源。

Representational State Transfer 表现层状态转化( 资源定位及资源操作) ,表象层面说就是通过get,post,put,delete方式来实现前后台通信的一种轻量级,跨平台,跨语言架构设计风格的web服务。

一、设计规范

1、 每一个URI代表1种资源;
2、 客户端使用GET、POST、PUT、DELETE4个表示操作方式的动词对服务端资源进行操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源;
3、 通过操作资源的表现形式来操作资源;
4、 资源的表现形式是XML或者HTML;
5、 客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都必须包含理解请求所必需的信息;

二、应用范围

1.WebService

Java的 jax -rs规范约束了RESTful WebService的开发方式,而cxf3.0已经实现了jax-rs 的全套规范。

WebService接口代码举例,按如下风格定义的WebService接口就是遵循RESTful开发规范的:

@Path("/userservice/")
public interface IMyService {

@Path("/addUser/")
@POST
Response addUser(User user);

@Path("/delUser/{id}/")
@DELETE
Response delUser(@PathParam("id") String id);

@Path("/updateUser/")
@PUT
Response updateUser(User user);

@Path("/getUserById/{id}/")
@GET
@Produces("application/json")//返回json数据格式
User getUserById(@PathParam("id") String id);

@Path("/")
@GET
@Produces("application/json")//返回json数据格式
List<User> findAllUsers();
}