6.1 RESTful 简介

RESTful是一种互联网软件服务架构设计风格,基于HTTPMethod(GET、POST、PUT、DELETE)操作资源。HTTP状态码用于表示请求执行的结果,如200表示成功,404表示未找到。与SOAP相比,RESTful更简洁,无状态,适合快速变化的业务需求。
摘要由CSDN通过智能技术生成

第6章 构建 RESTful 服务

6.1 RESTful 简介
6.2 构建 RESTful 应用接口
6.3 使用 Swagger 生成 Web API 文档
6.4 实战:实现 Web API 版本控制

6.1 RESTful 简介

本节内容大纲:

  • 什么是 RESTful?RESTful 的特点?RESTful 中的资源?
  • HTTP Method?HTTP Status?
  • RESTful 和 SOAP 的区别?

6.1.1 什么是 RESTful

1、什么是 RESTful?

答:

  • RESTful 是目前流行的互联网软件服务架构设计风格。
  • REST(Representational State Transfer,表述性状态转移)定义了互联网软件服务的架构原则,如果一个架构符合REST原则,那么称之为RESTful架构。
  • REST 并不是一个标准,它更像一组客户端和服务端交互时的架构理念和设计原则,基于这种架构理念和设计原则的 Web API 更加简洁,更有层次。

2、RESTful 的特点?

答:
(1)每一个 URI 代表一种资源。
(2)客户端使用 GET、POST、PUT、DELETE 四种表示操作方式的动词对服务端资源进行操作:
GET用于获取资源,POST用于新建资源(也可以用于更新资源),PUT用于更新资源,DELETE用于删除资源。
(3)通过操作资源的表现形式来实现服务端请求操作。
(4)资源的表现形式是 JSON 或者 HTML。
(5)客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都包含必需的信息。


符合 RESTful 规范的 Web API 需要具备如下两个关键特性:

  • 安全性
  • 幂等性

3、RESTful中的资源?

答: RESTful 中的资源通过 JSON 或者 HTML 的形式表现。

6.1.2 HTTP Method

什么是 HTTP Method?

答: HTTP 提供了 POST、GET、PUT、DELETE 等操作类型对某个 Web 资源进行 Create、Read、Update 和 Delete 操作。 一个 HTTP 请求除了利用 URI 标志目标资源之外,还需要通过 HTTP Method 指定针对该资源的操作类型。


常见的 HTTP Method:POST、GET、PUT、PATCH、DELETE。
对应的 CURD 操作:Create、Read、Update、Delete。

6.1.3 HTTP 状态码

1、什么是 HTTP 状态码?

答:HTTP 状态码就是服务向用户返回的状态码和提示信息,客户端的每一次请求,服务都必须给出回应,回应包括 HTTP 状态码和数据两部分。

2、HTTP 状态码有哪5类?

答: HTTP 定义了40个标准状态码,可用于传达客户端请求的结果。状态码分为以下5个类别:

  • 1xx:信息,通信传输协议级信息。
  • 2xx:成功,表示客户端的请求已成功接受。
  • 3xx:重定向,表示客户端必须执行一些其他操作才能完成其请求。
  • 4xx:客户端错误,此类错误状态码指向客户端。
  • 5xx:服务器错误,服务器负责这些错误状态代码。

RESTful API 中使用 HTTP 状态码来表示请求执行的结果,适用于 REST API 设计的代码以及对应的 HTTP 方法,如表所示:

HTTP 状态码

HTTP 状态码返回值HTTP Mehod特定返回值
200OKGET服务器成功返回用户请求的数据,该操作是幂等的
201CreatedPOST/PUT/PATCH用户新建或修改数据成功
202Accepted*表示一个请求已经进入后台排队(异步任务)
204NO CONTENTDELETE用户删除数据成功
400INVALID REQUESTPOST/PUT/PATCH用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的
401Unauthorized*表示用户没有权限(令牌、用户名、密码错误)
403Forbidden*表示用户得到授权(与401错误相对),但是访问是被禁止的
404NOT FOUND*用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的
406Not AcceptableGET用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)
410GoneGET用户请求的资源被永久删除,且不会再得到
422Unprocesable entityPOST/PUT/PATCH当创建一个对象时,发生一个验证错误
500INTERNAL SERVER ERROR*服务器发生错误,用户将无法判断发出的请求是否成功

上表是 HTTP 协议提供的状态码和 HTTP Method。通过 RESTful API 返回给客户端的状态码和提示信息可以判断出 Web API 的请求和执行情况。

除了以上基本的 HTTP 请求状态码外,Web API 服务端还需要定义业务相关的状态,如 1000 订单提交成功、1002 订单修改成功等。每种状态码都有标准的解释,客户端只需查看状态码字典就知道相应业务的执行结果,所以服务端应该返回尽可能精确的状态码。

6.1.4 REST 和 SOAP 的区别

1、RESTful 和 SOAP 到底有哪些区别?

答:
(1)SOAP
SOAP(Simple Object Access Protocol,简单对象访问协议)是一种标准化的通信规范,主要用于 Web 服务。它有着严格的规范和标准,包括安全、事务等各个方面的内容,同时 SOAP 强调操作方法和操作对象的分离,使用 WSDL 文件规范和 XSD 分别对其定义。


(2)RESTful
RESTful 简化了 WebService 的设计,它不再需要 WSDL,而是通过最简单的 HTTP 协议传输数据(包括 XML 和 JSON)。既简化了设计,也减少了网络传输量(因为只传输代表数据的 XML 或 JSON,没有额外的 XML 包装)。REST 强制所有的操作都必须是无状态的,没有上下文的约束,不需要考虑上下文和会话保持的问题,极大地提高系统的可伸缩性。


(3)区别
RESTful 相对于 SOAP 更加简单明了,它并没有一个明确的架构标准,更像是一种设计风格,其核心是面向资源;而 WebService 基于 SOAP 协议,主要核心是面向活动

2、设计Web服务时,选择目前最流行的 RESTful 还是选择老牌的 WebService?

答: 移动互联网飞速发张的今天,业务随时都在变化,天然拥抱变化的 RESTful 架构无疑是当前互联网行业 Web 服务架构开发的首选。

来源:《Spring Boot 从入门到实战》学习笔记

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值