RESTful API

REST基本概念

REST,表示性状态转移(representation state transfer)。
简单来说,就是用URI表示资源,用HTTP方法(GET, POST, PUT, DELETE)表征对这些资源的操作

  1. Resource(资源):即数据,存在互联网上的可被访问的实体。URI(Uniform Resource Identifier)的全称就是统一资源标识符,和我们这里的资源一个意思。一个资源可以是一段文字、一张图片、一段音频、一个服务。
  2. 表现层(Representation): “资源"是一种信息实体,它可以有多种外在表现形式。我们把"资源"具体呈现出来的形式,叫做它的"表现层”(Representation)。比如一篇文章,可以使用XML、JSON、HTML的形式呈现出来。
  3. 状态转移(State Transfer):访问一个网站,就代表了客户端和服务器的一个互动过程。在这个过程中,势必涉及到数据和状态的变化。互联网通信协议HTTP协议,是一个无状态协议,这意味着所有的状态都保存在服务器端。因此,如果客户端想要操作服务器,必须通过某种手段,让服务器端发生"状态转化"(State Transfer)。而这种转化是建立在表现层之上的,所以就是"表现层状态转化"。

RESTful架构的主要原则:

  • 对网络上所有的资源都有一个资源标志符。
  • 对资源的操作不会改变标识符。
  • 同一资源有多种表现形式(xml、json)
  • 所有操作都是无状态的(Stateless)

上面我们介绍了REST的基本概念,那么服务REST 规范的设计,我们就可以称为 RESTful。
RESTful API 就是REST风格的API。


REST资源操作

HTTPCRUD路径表述
GETRetrieve(查)/shops获取所有店铺信息
GETRetrieve(查)/shops/ID获取指定店铺信息
GETRetrieve(查)/shops/ID/products获取指定店铺中所有商品信息
POSTCreate(增)/shops新建一个店铺
PUTUpdate(改)/shops/ID更新指定店铺的全部信息
PATCHUpdate(改)/shops/ID更新指定店铺的局部信息
DELETEDelete(删)/shops/ID删除某个店铺

RESTful 中根据操作资源的不同,使用不同的http方法,其传输的媒介一般使用json。

无论是面试或者工作中,总会听到别人问到关于Restful风格API的问题,其实,它并不是我们想象中的那么高深莫测,它只是一种设置API架构风格,而不是一种新的技术,遵循这种风格设计的API就被称为Restful API


RESTful是否好用:

  • 好用:面向对象(资源),如增删改查操作
  • 不好用:面向过程,如登录操作

状态码

HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,HTTP状态码共分为5种类型:

分类描述
1xx信息,服务器收到请求,需要请求者继续执行操作
2xx成功,操作被成功接收并处理
3xx重定向,需要进一步的操作以完成请求
4xx客户端错误,请求包含语法错误或无法完成请求
5xx服务器错误,服务器在处理请求的过程中发生了错误
posted @ 2022-07-20 18:15  猫老板的豆  阅读(26)  评论(0编辑  收藏  举报