API 开发可能是一项耗时且复杂的任务,但并非必须如此。随着自然语言处理和机器学习的进步,我们现在可以使用像 ChatGPT 这样的工具来大大简化这个过程。在这篇博文中,我们将采用循序渐进的方法使用 ChatGPT 生成 Flask REST API。我们将涵盖从设置初始项目到测试和部署最终产品的所有内容。到本文结束时,您将对如何使用 ChatGPT 生成 Flask REST API 有一个扎实的了解,并且您将能够将这些知识应用到您自己的项目中。2023 GPU Benchmark 与显卡对比图那么,让我们开始吧!
为了生成 Flask REST API Web 应用程序,我们需要将特定要求输入到 ChatGPT 中。本文示例使用的描述如下:
“生成具有以下端点的 Flask 应用程序:
第一个端点在 /users 处接受 HTTP GET 请求并返回 JSON 格式的用户列表。每个用户由 userID、firstName、lastName、active 组成
第二个端点在 /addUser 处接受 HTTP POST 请求,并接收一个 JSON 用户对象,其中用户 ID、名字、姓氏在 JSON 格式中处于活动状态。然后将新用户添加到内部用户列表中。
第三个端点在 /deleteUser 处接受 HTTP DELETE 请求并接收带有用户 ID 的 JSON 对象。具有该用户 ID 的用户条目已从内部用户列表中删除。”
然后,ChatGPT 将根据要求开始提供 Flask 网络应用程序的完整实施:
ChatGPT 提供的完整 Flask 代码:
from flask import Flask, jsonify, requestapp = Flask(__name__)users = []@app.route('/users', methods=['GET'])
def get_users():return jsonify(users)@app.route('/addUser', methods=['POST'])
def add_user():user = request.get_json()users.append(user)return jsonify(user)@app.route('/deleteUser', methods=['DELETE'])
def delete_user():user_id = request.get_json()['userID']for user in users:if user['userID'] == user_id:users.remove(user)return jsonify(user)return jsonify({"message": "User not found"})if __name__ == '__main__':app.run()
第一行from flask import Flask, jsonify, request从 Flask 库中导入必要的模块。该Flask模块用于创建 Flask 应用程序,jsonify用于在响应中返回 Python 对象时将它们转换为 JSON,request 用于从 HTTP 请求的主体中获取数据。
第二行app = Flask(__name__)创建一个新的 Flask 应用程序并将其分配给 app 变量。name参数用于确定应用程序的根路径。
该users变量是一个将保存用户数据的列表。
接下来是三个函数,每个函数都用@app.route装饰器装饰。每个函数负责处理 API 的特定端点。
第一个函数get_users()处理 GET/users端点。它用@app.route('/users', methods=['GET'])which 装饰,告诉 Flask 这个函数应该处理对/users端点的 GET 请求。它使用函数返回 JSON 格式的用户列表jsonify。
第二个函数add_user()处理 POST/addUser端点。它用@app.route('/addUser', methods=['POST'])which 装饰,告诉 Flask 这个函数应该处理对/addUser端点的 POST 请求。它使用 方法request.get_json()从请求正文中获取用户数据,然后将用户数据附加到用户列表,并使用该函数以 JSON 格式返回添加的用户jsonify。
第三个函数delete_user()处理 DELETE/deleteUser端点。它用@app.route('/deleteUser', methods=['DELETE'])which 装饰,告诉 Flask 这个函数应该处理对/deleteUser端点的 DELETE 请求。它使用request.get_json()方法从请求正文中获取userID,然后循环遍历用户列表以查找具有匹配 的用户userID,如果找到则将其从用户列表中删除并使用该jsonify函数以 JSON 格式返回删除的用户。如果找不到用户,它会返回一个带有消息“找不到用户”的 json 对象
最后几行if __name__ == '__main__':检查脚本是否直接运行而不是作为模块导入,如果是,它会使用该app.run()方法运行应用程序。
将此代码复制到新文件 app.py 中。然后,您可以使用以下命令启动开发服务器:
$ python app.py
然后您可以看到服务器已启动并在端口 5000 上运行:
测试端点
您可以使用curl命令行中的命令来测试 Flask 应用程序的不同端点。下面是一些示例,说明您可以如何使用它curl来测试我之前提供的应用程序的不同端点:
GET /users — 要测试/users返回用户列表的端点,您可以使用以下命令:
$ curl -X GET http://localhost:5000/users
最初你只会收到一个空数组,因为还没有创建用户:
POST /addUser — 要测试/addUser将新用户添加到内部用户列表的端点,您可以使用以下命令:
$ curl -X POST -H "Content-Type: application/json" -d '{"userID": "1", "firstName": "John", "lastName": "Doe", "active": true}' http://localhost:5000/addUser
执行此命令后,您可以再次向 /users 发送 POST 请求:
结果,您可以看到新的用户对象现在可用。
DELETE /deleteUser — 要测试/deleteUser从内部用户列表中删除用户的端点,您可以使用以下命令:
$ curl -X DELETE -H "Content-Type: application/json" -d '{"userID": "1"}' http://localhost:5000/deleteUser
如果您随后再次访问 /users 端点,您将再次获得一个空数组,因为用户条目已成功删除:
结论
ChatGPT 是一个强大的工具,可以大大简化使用 Flask 开发 API 的过程,我们希望这篇博文能帮助您了解如何使用它。我们鼓励您尝试使用 ChatGPT 并了解它如何使您自己的项目受益。编码愉快!