什么是RESTful API?初学者指南

引言

在当今的数字世界中,应用程序需要无缝地相互通信。无论你是登录一个网站、在手机上查看天气,还是在线订餐,你很可能在后台与一个RESTful API进行交互。

那么,RESTful API究竟是什么呢?在本指南中,我们将以简单易懂的方式进行解析。

“RESTful”到底是什么意思?

图片描述

让我们从基础开始。

什么是API?

API(应用程序编程接口)是不同软件应用程序之间进行通信的一种方式。可以把它想象成餐厅里的服务员:

  • 你(客户端)下订单。
  • 服务员(API)将您的请求带到厨房(服务器)。
  • 厨房准备食物,服务员再将其带回给您。

从技术角度来看,API 允许客户端(例如,网页应用或移动应用)向服务器请求并接收数据。

那么,什么是 RESTful API?

REST 代表表现层状态转移——别担心,这并没有听起来那么复杂!它只是一组指令,说明计算机和应用程序如何在互联网上共享信息。可以把它想象成一本简单的规则手册,用于保持它们之间的对话清晰和有序。

RESTful API 是遵循这些 REST 规则的 API。就像一家咖啡馆被称为“特色咖啡馆”,因为它以特定的方式制作咖啡。RESTful API 有其原则,API 必须遵循这些原则才能被称为“RESTful API”。

什么使 API 成为 ‘RESTful’

图像描述

要使API符合RESTful标准,必须遵循以下原则:

  1. 客户端-服务器架构 – 客户端(例如,移动应用)和服务器(例如,数据库)保持分离,以便它们可以独立演进。
  2. 无状态性 – 服务器不在请求之间存储客户端数据。每个请求都包含所有必要的信息。
  3. 可缓存性 – 响应可以被缓存以提高性能。
  4. 统一接口 – 资源命名和HTTP方法的一致使用。
  5. 分层系统 – 请求可以通过中介(例如,负载均衡器)传递,而不影响其功能。

RESTful API的工作原理

图片描述

RESTful API依赖标准HTTP方法对资源执行操作。想象一个在线工资单系统:

HTTP方法 操作 示例端点
GET 检索数据 /payslips/123 (获取 ID 为 123 的工资单)
POST 创建新数据 /payslips/ (添加新的工资单)
PUT 更新现有数据 /payslips/123 (更新 ID 为 123 的工资单)
DELETE 删除数据 /payslips/123 (删除 ID 为 123 的工资单)

 

示例 API 请求(Python)

以下是一个使用 requests 库获取工资单的简单 Python 示例:

import requests

response = requests.get("https://api.example.com/payslips/123")
if response.status_code == 200:
    print(response.json())
else:
    print("获取数据时出错")

该请求从API中检索工资单并打印JSON响应。

RESTful API与其他API风格

REST与SOAP

  • REST:通过HTTP使用轻量级的JSON或XML。
  • SOAP(简单对象访问协议):更复杂,使用XML,并需要额外的协议如WS-Security。

REST与GraphQL

  • REST:固定端点(/users,/orders)。
  • GraphQL:允许灵活查询,仅获取必要的数据。

RESTful API中的身份验证

图片描述

API 通常需要身份验证以保护敏感数据。常见的方法包括:

  • API 密钥 – 分配给用户的唯一密钥。
  • OAuth 2.0 – Google 和 GitHub 等平台使用的安全授权协议。
  • JWT(JSON Web 令牌) – 用于客户端与服务器之间安全身份验证的令牌。

使用 Bearer Token 的身份验证示例:

headers = {"Authorization": "Bearer YOUR_ACCESS_TOKEN"}
response = requests.get("https://api.example.com/payslips/123", headers=headers)
print(response.json())

总结

 

RESTful API 是一种巧妙且有组织的方式,让应用程序和计算机能够通过互联网共享信息。它们使用简单的概念,如资源(可以将其视为正在处理的项目)、HTTP 方法(如“获取”或“发送”)以及网络地址(称为 URI),还有一些酷炫的技巧,比如不记住过去的对话(无状态性)和为后续使用保存信息(缓存)。所有这些都保持了操作的快速和流畅。无论你是在创建工资单还是在应用程序中播放音乐,RESTful API 每天都在默默地发挥作用。

 

下次你使用应用程序时,想想在背后默默工作的 RESTful 魔法——这真的很棒!如果你感兴趣,可以尝试玩玩一个免费的 API(比如一个 天气 API——这是一个很好的入门方式!)。

 

更多