您是否有兴趣为您的 Web 应用程序构建一个健壮且高效的 RESTful API,但又不想花费数小时的时间和精力进行编码?不要再观望!在这篇博文中,我们将向您展示如何使用 ChatGPT(OpenAI 的一种高级语言模型)的强大功能在短短 5 分钟内创建一个完整的 REST Web API。

得益于 ChatGPT 的自然语言处理能力和生成源代码的能力,无需自己编写一行代码即可构建 RESTful API。

我们将提供分步指南,向您展示如何创建可以对简单数据模型(例如用户数据库)执行基本创建、读取和删除操作的 API。Belarc Advisor 生成详细的 PC 报告我们将要求 ChatGPT 使用 Python 为我们创建 API 代码。

无论您是希望在下一个项目上节省时间的开发人员,还是希望为您的应用程序快速构建 API 的企业主,本指南都非常适合您。因此,让我们开始吧,并在短短 5 分钟内使用 ChatGPT 构建一个完整的 REST Web API!

我们想创造什么

因此,让我们确保我们对要使用 ChatGPT 创建的 Web API 有明确的要求。让我们列出要求:

在 Python 中创建一个完整的 REST Web API,包括以下端点

  • /user 处的 HTTP GET 端点以检索单个用户记录

  • /users 处的 HTTP GET 端点以检索所有用户记录

  • /newuser 处的 HTTP POST 端点,用于创建新的用户记录。用户数据(用户名、密码、状态)以 JSON 格式在请求正文中传递。用户 ID 是自动分配的

  • 位于 /deleteuser 的 HTTP DELETE 端点用于删除现有用户记录。请求正文中提供了用户 ID。用户数据保存在 MySQL 数据库中。提供了到远程数据库的连接字符串

因此,让我们将此提示放入 ChatGPT 中:

作为回应,ChatGPT 开始使用 Flask 网络框架生成 Python 代码:

在以下清单中,您可以看到由 ChatGPT 生成的完整 Python 代码:

from flask import Flask, request, jsonify
import mysql.connector

app = Flask(__name__)

# MySQL database connection
db = mysql.connector.connect(
    host="localhost",
    user="yourusername",
    password="yourpassword",
    database="yourdatabase"
)

# HTTP GET endpoint to retrieve a single user record
@app.route('/user/<int:user_id>', methods=['GET'])
def get_user(user_id):
    cursor = db.cursor()
    cursor.execute("SELECT * FROM users WHERE id=%s", (user_id,))
    user = cursor.fetchone()
    cursor.close()
    if user is not None:
        return jsonify({"id": user[0], "username": user[1], "password": user[2], "status": user[3]})
    else:
        return jsonify({"message": "User not found"}), 404

# HTTP GET endpoint to retrieve all user records
@app.route('/users', methods=['GET'])
def get_users():
    cursor = db.cursor()
    cursor.execute("SELECT * FROM users")
    users = cursor.fetchall()
    cursor.close()
    user_list = []
    for user in users:
        user_list.append({"id": user[0], "username": user[1], "password": user[2], "status": user[3]})
    return jsonify(user_list)

# HTTP POST endpoint to create a new user record
@app.route('/newuser', methods=['POST'])
def create_user():
    data = request.get_json()
    username = data['username']
    password = data['password']
    status = data['status']
    cursor = db.cursor()
    cursor.execute("INSERT INTO users (username, password, status) VALUES (%s, %s, %s)", (username, password, status))
    dbmit()
    new_user_id = cursor.lastrowid
    cursor.close()
    return jsonify({"id": new_user_id, "username": username, "password": password, "status": status}), 201

# HTTP DELETE endpoint to delete an existing user record
@app.route('/deleteuser', methods=['DELETE'])
def delete_user():
    data = request.get_json()
    user_id = data['id']
    cursor = db.cursor()
    cursor.execute("DELETE FROM users WHERE id=%s", (user_id,))
    dbmit()
    cursor.close()
    return jsonify({"message": "User deleted successfully"}), 200

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

在上面的代码中,我们首先导入所需的模块——Flask 和 mysql.connector。然后,我们使用提供的连接详细信息创建一个 MySQL 数据库连接。

我们定义了四个端点,每个端点都有自己的路由和 HTTP 方法。端点/user/<int:user_id>是一个 GET 请求,它通过 ID 检索单个用户记录。端点/users是检索所有用户记录的 GET 请求。端点/newuser是创建新用户记录的 POST 请求。端点/deleteuser是一个 DELETE 请求,它通过其 ID 删除现有用户记录。

对于每个端点,我们使用 jsonify 函数以 JSON 格式返回数据。对于create_user和delete_user端点,我们使用request.get_json()函数从请求正文中提取用户数据和用户 ID。

最后,我们运行 Flask 应用程序app.run(debug=True)。该debug=True选项启用调试模式,在开发过程中提供更详细的错误消息。

创建一个新文件 py-api.py 并插入生成的 Python 代码。确保还使用 pip 命令安装所需的 Python 库,如下所示:

$ pip install mysql-connector-python
$ pip install flask

设置数据库连接

ChatGPT 提供的代码包含以下部分:

# MySQL database connection
db = mysql.connector.connect(
    host="localhost",
    user="yourusername",
    password="yourpassword",
    database="yourdatabase"
)

根据分配给主机、用户、密码和数据库的值,创建与 MySQL 数据库的连接。这部分代码需要进行调整以满足您特定数据库实例的设置。

如果您想使用现有的 MySQL 数据库实例,您可以直接在此处输入连接详细信息。

如果你想创建一个新的 MySQL 实例只是为了测试目的,你可以使用像 db4free 这样的服务。

一旦我们有一个可用的正在运行的 MySQL 数据库实例(并将连接详细信息插入到 Python 代码中),我们还需要确保数据库表 users 已启动。让我们再次向 ChatGPT 询问执行此操作的 SQL 代码:

我们只需要 CREATE TABLE SQL 语句:

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    password VARCHAR(50) NOT NULL,
    status VARCHAR(50) NOT NULL
);

该语句现在可用于在我们的数据库中创建相应的用户表。如果您已经使用 db4free 创建了 MySQL 数据库,您可以直接登录到 phpMyAdmin 网页界面并将要执行的 SQL 语句粘贴到网页界面中:

如果您通过单击“Go”按钮执行此语句,您应该能够看到该表已成功创建:

测试 API

让我们通过运行 Flask Web 服务器来测试 Python 脚本。只需输入以下命令:

$ python py-api.py

然后您应该收到以下输出,通知您服务器已在端口 5000 上启动:

让我们开始使用 Postman 工具 (https://www.postman/) 测试 Web API 的各种端点。

首先让我们通过向端点发送 POST 请求来创建一个新用户http://localhost:5000/newuser,并以 JSON 格式在请求正文中为新用户移交数据:

执行此请求时,您应该会收到一个 JSON 对象作为响应。该对象应再次包含用户数据以及自动分配的 ID。

创建第一条用户记录后,让我们尝试通过向端点发送 GET 请求来再次检索该用户记录http://localhost:5000/user/[id]:

作为对此请求的响应,您应该能够看到 JSON 格式的用户对象。

您还可以通过将 GET 请求发送至以下地址来检索所有用户的列表http://localhost:5000/users:

最后,我们向端点发送 DELETE 请求,http://localhost:5000/deleteuser如下面的屏幕截图所示:

如果一切正常,您会收到一条确认消息,表明用户已成功删除。

结论

在短短 5 分钟内构建一个完整的 RESTful API 不再是遥不可及的梦想。借助 ChatGPT 和 Python 的 Flask 框架的强大功能,您可以快速轻松地创建满足您特定要求的 API,而无需编写大量代码或担心技术细节。

在这篇博文中,我们向您展示了如何使用 ChatGPT 构建具有基本操作的简单用户数据库 API。我们希望本指南能让您了解这项技术的可能性,以及它如何帮助您在构建下一个项目时节省时间和资源。

更多推荐

只需 5 分钟即可使用 ChatGPT 构建完整的 REST Web API