RESTful--概念学习

版权声明:本文为博主原创文章,经博主允许,可自由共享,尽量不要用于商业用途。 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格式】

猜你喜欢

转载自blog.csdn.net/matrixbbs/article/details/88943358