RESTful

RESTful基本特点

  1. 无状态 比如websocket这种连接,断开连接的是有状态的
  2. 面向资源,没有动词
  3. http动词 get 查看, post 创建, put 更新, patch 部分更新,delete 删除.
  4. 超媒体即应用状态引擎

好用:面向对象(资源),如增删改查.
不好用: 面向过程,如登陆.

restful6个约束和最佳实践

  1. client-server
    前后端分离

  2. 无状态
    请求独立(jwt)

3.分层系统
代码分层

  1. 统一接口(核心)
    数据统一
    api自发现

5.可缓存

6.按需代码,不重要
绝大部分后端都不会100%满足这6个约束.
restful是一种架构风格,但它绝不是一种代码标准,实现业务是王道.

restful成熟度模型

level0
只要有api
通过http传输

level1
面向资源

level2
http动词

level3
超媒体即自我发现引擎
api自我发现
超媒体=多媒体+超文本
好处:前端程序员不用把url写入配置文件,不用hard code url字符串,不用再代码中做url的拼接.
用不用restful,要根据项目的实际情况决定,用哪个成熟的要看业务需求.

http HEAD请求
HEAD与GET类似,但是没有响应主题
检查缓存
探测资源是否存在

http方法的安全性和幂等性
安全性

  1. 不会产生副作用,不会改变当前资源状态.
  2. 包括那些可以被缓存对资源无损加载的方法
    比如:get请求head请求

幂等性

  1. 同样的操作不管经历多少次调用,返回的数据,产生的效果都是一样的

PUT VS PATCH
PUT: 对某个资源所有的字段进行更新
Patch: 对某个资源所选的某几个字段部分更新.

原文地址:https://www.cnblogs.com/wangzhe66369/p/15322293.html