rest服务是一种Web服务架构,其目标是为了创建具有良好扩展性的分布式系统。
rest应该具备以下条件:
-
使用客户/服务器模型(简称C/S结构,是一种网络架构,它把客户端 (Client) 与服务器(Server) 区分开来。 每一个客户端软件的实例都可以向一个服务器或应用程序服务器发出请求。)
例如前后端分离,页面和服务不在同一服务器上运行。 -
层次化的系统
例如一个父系统下有多个子模块,每个模块都是独立的服务。 -
无状态
服务端并不会保存有关客户的任何状态,也就是说要服务后端服务,就要带token过去。 -
可缓存
例如服务端通过token缓存已登录过的用户信息,客户端请求会带一个token过来,后台服务通过带过来的token在缓存中取出用户信息,提高效率。 -
统一的接口
例如,一个项目的所有模块都整合到一起,all-in-one,打成一个包,多个服务,整合到一个端口下。
如果一个系统满足了上面所列出的五条约束,那么该系统就被称为是RESTful的(一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。)