什么是Restful API?

1.概述

RESTful API 是一种基于 REST(Representational State Transfer,表述性状态转移)架构风格的应用程序编程接口(API)。RESTful API 是一种通过 HTTP 协议进行数据通信的接口设计方法,广泛用于构建网络应用和服务。RESTful API 是无状态的,这意味着每个请求都是独立的,服务器不会在请求之间保存任何状态信息。

2.RESTful API 的关键概念

1.资源(Resource):

资源是 RESTful API 中的核心概念,代表了应用程序中的数据实体。资源可以是用户、文章、产品等。在 RESTful API 中,每个资源都有一个唯一的 URL(统一资源定位符)进行标识。例如,https://api.example.com/users/123 可能表示一个用户资源,其 ID 为 123。

2.HTTP 方法(HTTP Methods):

RESTful API 使用标准的 HTTP 方法来操作资源。常用的 HTTP 方法包括:
GET: 检索资源。通常用于读取或获取资源信息。
POST: 创建资源。通常用于在服务器上创建新的资源。
PUT: 更新资源。通常用于更新已有资源的全部信息。
PATCH: 局部更新资源。通常用于更新已有资源的部分信息。
DELETE: 删除资源。通常用于删除服务器上的资源。

3.URI(Uniform Resource Identifier):

URI 是用于标识资源的统一资源标识符。在 RESTful API 中,URI 通常以路径的形式表示资源。例如,/users 表示用户集合,/users/123 表示特定用户。

4.无状态(Statelessness):

RESTful API 是无状态的,这意味着每个请求都是独立的,服务器不会在请求之间保留任何客户端状态。客户端需要在每次请求中包含所有必要的信息(如身份验证令牌),以便服务器能够处理请求。

5.表述(Representation):

表述指的是资源的具体表现形式。在 RESTful API 中,资源可以有不同的表述形式,如 JSON、XML、HTML 等。服务器会根据客户端的请求或默认设置返回适当的表述。例如,Content-Type: application/json 头信息表示返回 JSON 格式的数据。

6.状态码(Status Codes):

RESTful API 使用标准的 HTTP 状态码来表示请求的结果。例如:
200 OK: 请求成功,返回资源数据。
201 Created: 成功创建资源。
204 No Content: 请求成功但无内容返回(通常用于删除操作)。
400 Bad Request: 请求无效,通常是因为请求数据格式错误。
401 Unauthorized: 请求未授权,用户未认证。
404 Not Found: 请求的资源不存在。
500 Internal Server Error: 服务器内部错误。

3.RESTful API 的设计原则

资源的唯一标识:

  • 每个资源应该有唯一的 URI 进行标识,且资源的 URI 应该是可预测的。

使用 HTTP 方法进行操作:

  • 利用 HTTP 方法对应 CRUD 操作,即 GET 读取、POST 创建、PUT 更新、DELETE 删除。

无状态通信:

  • 服务器端不保存客户端的状态,每个请求都是独立的。

资源表述:

  • 客户端可以通过请求不同的表述形式(如 JSON 或 XML)获取资源。

使用 HTTP 状态码表示请求结果:

  • 服务器使用标准的 HTTP 状态码来通知客户端请求的结果,从而使客户端能清晰地理解操作是否成功。

4.RESTful API 的优缺点

优点:

简洁易读:URI 结构清晰,HTTP 方法语义明确,易于理解和使用。
灵活性:能够通过 URL 和 HTTP 方法灵活地组合操作和资源。
无状态:无状态通信简化了服务器端的实现和扩展。
广泛兼容性:RESTful API 基于 HTTP 协议,因此与各种客户端兼容,包括浏览器、移动应用和其他服务器。

缺点:

无状态性带来的开销:每次请求都需要传递完整的上下文信息,可能导致一些性能开销。
仅支持 HTTP:RESTful API 只能通过 HTTP 协议进行通信,限制了协议的选择。

5.和之前用的有什么区别

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

霍志杰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值