一、什么是API?
API(Application Programming Interface,应用程序编程接口) 就像是餐厅的服务员。你(客户端)不需要亲自去厨房(服务器)做饭,只需要通过服务员(API)点餐,厨房做好后由服务员把菜(数据)端给你。
API的核心要素
| 要素 | 说明 | 示例 |
|---|---|---|
| Endpoint(端点) | API的访问地址 | https://api.example.com/users |
| Method(方法) | 对资源的操作类型 | GET(获取)、POST(创建)、PUT(更新)、DELETE(删除) |
| Headers(请求头) | 请求的元信息 | 认证令牌、数据格式 |
| Parameters(参数) | 传递的数据 | ?id=123 或 JSON 数据体 |
| Response(响应) | 服务器返回的数据 | JSON/XML 格式的结果 |
二、准备工作
1. 选择测试工具
作为新手,建议从以下工具开始:
- Postman(推荐):图形化界面,最适合初学者
- 浏览器开发者工具(F12 → Network):快速测试GET请求
- curl(命令行):轻量级,适合脚本化
- Python + requests:编程调用(进阶)
2. 获取API文档
任何正规API都会提供文档,通常包含:
- 基础URL(Base URL)
- 认证方式(API Key / OAuth / Token)
- 可用端点列表
- 请求/响应格式示例
- 错误代码说明
三、实战:调用一个公开API
我们以 JSONPlaceholder(免费的测试API)为例,获取文章列表。
步骤1:阅读文档
- URL:
https://jsonplaceholder.typicode.com/posts - Method:
GET - 无需认证(适合练习)
步骤2:使用浏览器快速测试
直接在地址栏输入:
https://jsonplaceholder.typicode.com/posts/1
你会看到返回的JSON数据:
{
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
}
步骤3:使用Postman进行专业测试
- 打开Postman,点击 New Request
- 选择 GET 方法
- 输入URL:
https://jsonplaceholder.typicode.com/posts - 点击 Send
成功标志:下方显示状态码 200 OK 和JSON数据数组。
四、理解HTTP状态码
表格
| 状态码 | 含义 | 常见场景 |
|---|---|---|
| 200 | 成功 | 请求正常完成 |
| 201 | 已创建 | POST请求成功创建资源 |
| 400 | 错误请求 | 参数格式错误或缺失 |
| 401 | 未授权 | 缺少或错误的认证信息 |
| 403 | 禁止访问 | 权限不足 |
| 404 | 未找到 | 请求的资源不存在 |
| 500 | 服务器错误 | 服务端内部错误 |
五、带认证的API调用(真实场景)
大多数生产环境API需要认证。常见方式:
方式1:API Key(最简单)
在请求头中添加:
Authorization: Bearer YOUR_API_KEY
或作为参数:
?api_key=YOUR_API_KEY
方式2:使用Python调用(编程方式)
import requests
# 1. 定义请求信息
url = "https://api.example.com/data"
headers = {
"Authorization": "Bearer sk-xxxxxxxxxxxx", # 你的API密钥
"Content-Type": "application/json"
}
params = {
"limit": 10, # 查询参数
"sort": "desc"
}
# 2. 发送GET请求
response = requests.get(url, headers=headers, params=params)
# 3. 处理响应
if response.status_code == 200:
data = response.json() # 解析JSON
print("获取成功:", data)
else:
print(f"请求失败,状态码:{response.status_code}")
print("错误信息:", response.text)
方式3:POST请求(提交数据)
import requests
url = "https://jsonplaceholder.typicode.com/posts"
payload = {
"title": "我的新文章",
"body": "这是文章内容",
"userId": 1
}
response = requests.post(url, json=payload)
if response.status_code == 201:
print("创建成功:", response.json())
六、新手常见错误与解决
| 错误现象 | 可能原因 | 解决方案 |
|---|---|---|
404 Not Found | URL错误或资源不存在 | 检查端点拼写,确认ID存在 |
401 Unauthorized | 认证失败 | 检查API Key是否正确、是否过期 |
400 Bad Request | 参数错误 | 对照文档检查必填字段和数据格式 |
| 返回HTML而非JSON | 端点错误或服务器异常 | 确认URL正确,检查是否需加/v1/等版本路径 |
| 中文乱码 | 编码问题 | 确保请求头包含 charset=utf-8 |
七、进阶建议
- 学习JSON格式:API主要使用JSON传输数据,掌握其结构(对象
{}、数组[]、键值对) - 了解RESTful设计:理解资源命名规范(如用
GET /users而非GET /getUsers) - 使用环境变量:在Postman中管理不同环境(开发/测试/生产)的URL和密钥
- 阅读错误响应:API通常在错误时返回详细说明,善用
response.text查看
八、推荐练习项目
- 天气查询:调用OpenWeatherMap API获取实时天气
- 翻译工具:使用Google Translate API或百度翻译API
- AI对话:调用Kimi API或其他大模型API实现聊天功能
- GitHub数据:使用GitHub API获取仓库信息、提交记录