版权声明:本文为博主原创文章,经博主允许,可自由共享,尽量不要用于商业用途。 https://blog.csdn.net/matrixbbs/article/details/88943358
什么是RESTful
REST本身即Representational State Transfer表述性状态转移
它是一种架构风格,它定义了创建可扩展Web服务的最佳实践,这个过程会充分发挥HTTP协议的功能。
RESTful的属性
1 客户端-服务器:UI是与数据存储分离的
2 无状态:每个请求会包含服务器所需的足够信息,无需维护状态就能够进行操作
3 可缓存:服务器的响应中包含了足够的需求,客户端能够对数据存储做出合理的决策
4 统一接口:URL会唯一识别资源,能够通过超链接发现API
5 分层:API的每个资源都提供了合理程序的细节
它的优势
1 易于维护
2 便于进行服务发现
3 易扩展
4 服务的内容会非常简洁,易于缓存,更加高效
5 省去进行负载均衡或是会话粘性要求
6 不必维持服务器到客户端的持久化会话连接
Richardson的成熟度模型
从0-3级的四个等级的RESTful程度描述
第0级,HTTP,满足自己的应用即可,一般就是JSON形式
第1级,资源,通过暴露多个特定的资源,处理应用程序的复杂性
第2级,HTTP动作,描述API能够完成什么功能。
- GET,读取数据【常用】
- HEAD,读取元数据
- DELETE,删除某个资源
- PUT,更新或创建某个资源
- POST,更新或创建某个资源【常用】
- PATCH,部分更新资源
- OPTIONS,返回服务端针对特定资源所支持方法列表
大数据应用会有CRUD操作,其实用3个动作就可以实现:GET,DELETE,POST
实现的动作越多,API就会越丰富越具有语义性
第3级,超媒体控制,通过使用超文本链接,进行服务的发现。也就是服务器端通过响应头或响应体,告诉客户端其可选择的功能。
对API进行版本化
可以避免更新应用的时候,带来破坏性
合理使用HTTP代码
2xx,成功
3xx,重定向
4xx,客户端出错
5xx,服务端出错
客户端为王
1 结果用JSON或是XML形式来展示
2 只是返回一个简单对象【默认为JSON格式】