Flask REST API 教程:用 Python 构建你的第一个接口(附AI开发工具与优化指南)

作者:API传播员 · 2025-10-09 · 阅读时间:6分钟

本文旨在介绍 REST 架构的基本概念,并通过使用 Flask 框架构建 REST API,完成一个简单的项目。以下内容将带您逐步了解 API、Web 服务以及 REST 的核心知识,并最终实现一个基于 Python 的 REST API 示例。


一. 理解 REST 与 API 基础

1. 什么是 API?

API(应用程序编程接口)是两个或多个服务之间进行通信的方式。
简单来说,它定义了服务之间如何通过请求和响应进行交互。

💡 在设计接口时,可以使用 开发任务管理系统KPI 工具为团队设定清晰的开发目标,确保项目进度与代码质量可衡量。


2. 什么是 Web 服务?

Web 服务是一种通过网络将一个应用程序的功能提供给其他应用程序使用的技术。
它具有跨平台特性,而 REST API 是最常见的 Web 服务实现方式之一。


3. 什么是 REST?

REST(Representational State Transfer,表述性状态转移)是一种基于 HTTP 的架构风格,核心思想是“资源即接口”。
它通过标准的 HTTP 方法与资源交互,例如:

  • 每个资源由 URI(统一资源标识符)标识;
  • 资源的状态通过其属性值表示;
  • 客户端使用 GET、POST、PUT、DELETE 等方法操作资源。

🔍 想让 API 文档更清晰?试试 代码文档生成器,可自动生成函数描述、参数表和示例请求。


二. REST 请求与响应结构

1. 请求结构

在 REST API 中,HTTP 动词用于指定要执行的操作:

  • GET:获取资源
  • POST:创建新资源
  • PUT:更新现有资源
  • DELETE:删除资源

示例请求:

GET /players?age=25&role=forward

GET 方法中可使用查询参数过滤结果。例如以上请求仅返回年龄25且角色为前锋的球员。


2. 响应结构

REST API 的响应通过状态代码来通知结果,例如:

  • 2xx:成功(如 200 OK)
  • 4xx:客户端错误(如 404 Not Found)
  • 5xx:服务器错误(如 500 Internal Server Error)

⚙️ 你可以用 代码优化 工具分析API响应结构,自动识别性能瓶颈或错误处理逻辑不足的地方。


三. 使用 Flask 构建 REST API 项目

我们将通过 Flask 构建一个简易的 REST API,对一个 Python 列表执行 CRUD 操作(增删改查),而不是依赖数据库。


1. 安装 Flask

pip install flask

2. 项目结构与示例代码

a. 实现 REST API 核心代码

from flask import Flask, jsonify, request

app = Flask(__name__)

# 示例玩家列表
players = [
    {"id": 1, "name": "John", "age": 25, "role": "forward", "contract": "2024"},
    {"id": 2, "name": "Mike", "age": 30, "role": "goalkeeper", "contract": "2023"}
]

# 获取所有玩家
@app.route('/players', methods=['GET'])
def get_players():
    return jsonify(players)

# 根据 ID 获取单个玩家
@app.route('/players/<int:player_id>', methods=['GET'])
def get_player(player_id):
    player = next((p for p in players if p["id"] == player_id), None)
    return jsonify(player) if player else ("Player not found", 404)

# 添加新玩家
@app.route('/players', methods=['POST'])
def add_player():
    new_player = request.json
    players.append(new_player)
    return jsonify(new_player), 201

# 更新玩家信息
@app.route('/players/<int:player_id>', methods=['PUT'])
def update_player(player_id):
    player = next((p for p in players if p["id"] == player_id), None)
    if player:
        player.update(request.json)
        return jsonify(player)
    return ("Player not found", 404)

# 删除玩家
@app.route('/players/<int:player_id>', methods=['DELETE'])
def delete_player(player_id):
    global players
    players = [p for p in players if p["id"] != player_id]
    return ("", 204)

if __name__ == '__main__':
    app.run(debug=True)

💻 想更快创建类似功能?试试 代码生成,自动生成 Flask 路由和请求处理逻辑。


3. 测试接口

可使用 PostmancURL 进行测试:

  • 获取所有玩家:GET /players
  • 获取单个玩家:GET /players/<id>
  • 添加新玩家:POST /players
  • 更新玩家信息:PUT /players/<id>
  • 删除玩家:DELETE /players/<id>

🧩 在联调过程中可调用 代码审查助手 自动检查API风格是否符合REST规范。


四. 总结与最佳实践

通过本文,您学习了:

  • REST 架构的核心思想
  • Flask 的基本用法
  • 如何构建与测试一个简易 REST API

在实际项目中,建议:

  1. 📋 使用 开发任务管理系统KPI 明确API开发目标。
  2. 🧠 借助 代码审查助手 定期优化结构。
  3. ⚙️ 利用 代码优化 提升性能。
  4. 📚 使用 代码文档生成器 快速生成API说明文档。

原文链接: https://blog.devgenius.io/rest-apis-with-python-f330c7ffc6ab