前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >什么是REST API ?

什么是REST API ?

作者头像
神的孩子都在歌唱
发布2025-03-05 20:09:52
发布2025-03-05 20:09:52
5000
代码可运行
举报
运行总次数:0
代码可运行

什么是REST API ?

前言

作者:神的孩子都在歌唱

一. REST简介

REST 是 Internet 上计算机之间最常见的通信标准。 API 代表应用程序编程接口。这是两台计算机相互通信的一种方式。大多数移动和 Web 应用程序用于与服务器通信的通用 API 标准称为 REST。

REST全称是Representational State Transfer,中文翻译为“表征状态转移”或“表现层状态转化”。这是什么意思呢? REST 不是规范。这是一套新的规则,自 2000 年代初以来一直是构建 Web API 的通用标准。遵循 REST 标准的 API 称为 RESTful API。

想要具体了解这些标准的可以看这篇文章RESTful架构(Representational State Transfer资源表现层状态转换)

二. REST 基础知识

2.1 请求方式

RESTful API 将资源组织成一组唯一的 URI统一资源标识符。 URl 区分服务器上不同类型资源

如下图, 资源应按名词而非动词分组。通过GET请求获取所有产品的 API 应该是/books,而不是/getAllBooks。

您可能听说过缩写词 CRUD,就是创建读取更新删除

  • POST 创建一个新资源。
  • GET读取现有资源的数据。
  • PUT 用于更新现有资源。
  • DELETE 用于删除现有资源。

客户端通过 HTTP 向服务器请求资源。该请求具有非常特定的格式,如下图所示。 该行包含我们要访问的资源URI。 URI 前面有一个POST请求,它告诉服务器我们想对资源做什么。

2.2 响应内容

在这些请求的内容中,通过POST可以自定义的数据格式创建新的数据,通常以 JSON 编码。服务器接收请求,对其进行处理,并将结果格式化为响应。一个良好实现的 RESTful API 会返回正确的 HTTP 状态代码。

  • 200 状态码: 表示请求成功。
  • 400状态码: 意味着我们的请求有问题。例如,请求包含不正确的语法。
  • 500 状态码: 这意味着服务器出现问题。例如,服务不可用。不被限制使用的客户端可以重试失败的请求。

不过重试需要注意,有些动作不是 幂等(idempotent) 的,重试时需要格外小心。不了解幂等的可以去看这篇文章

POST 通常不是幂等的。 GET,PUT,DELETE是幂等。

  1. 1. 幂等: 调用多个请求将不会在服务器上新增数据,也就是当 API 是幂等的时,发出多个相同的请求与发出单个请求具有相同的效果
  2. 2. POST 通常不是幂等: 因为POST请求通常是为了创建新资源。所以,调用相同的POST请求N次时,您将在服务器上拥有N个新资源。因此,POST一般不是幂等的。

服务器响应内容是可设置的,通常采用 JSON 格式。

2.3 其他知识

  1. 1. REST 实现应该是无状态的。这意味着双方不需要存储任何关于彼此的信息。
  2. 2. 服务器返回大量数据,请使用分页。常见的分页方案使用**“limit”和“offset”**作为参数。
代码语言:javascript
代码运行次数:0
复制
/books?limit=1&offset=10
  1. 3. API的版本控制非常重要。版本控制允许实现提供向后兼容性,因此如果我们从一个版本另一个版本引入重大更改。有很多方法可以对 API 进行版本控制。最直接的方法是在 URI 上的资源之前添加版本前缀v1,v2。
代码语言:javascript
代码运行次数:0
复制
/v1/books
/v2/books
  1. 4. 还有其他流行的 API 选项,例如 GraphQL 和 gRPC。

作者:神的孩子都在歌唱 本人博客:https://blog.csdn.net/weixin_46654114 转载说明:务必注明来源,附带本人博客连接

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-01-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 神的孩子都在歌唱 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是REST API ?
    • 一. REST简介
    • 二. REST 基础知识
      • 2.1 请求方式
      • 2.2 响应内容
      • 2.3 其他知识
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档