从零搭建 Flask REST API 并通过 DevBridge 一键分享——华为云开发者工具链实战
前言
在云原生时代,开发者不仅需要写出好代码,还需要快速将服务暴露给外部测试、协作和验证。本文分享一次完整的实战经历:从零搭建一个基于 Flask 的 REST API Web 服务,将代码托管到 GitCode,再通过华为云 DevBridge 开发隧道将本地服务安全暴露给外部访问,最后发布到华为云作品陈列馆。
整个流程不需要购买云服务器、不需要配置公网 IP,本地开发环境即可完成全部操作。
一、项目概述
我们要构建一个轻量级的用户管理 REST API 服务,提供以下接口:
| 路由 | 方法 | 说明 |
|---|---|---|
/ |
GET | 欢迎页面,返回服务信息和 API 列表 |
/health |
GET | 健康检查 |
/api/info |
GET | 服务详细信息 |
/api/users |
GET | 用户列表 |
/api/users/<id> |
GET | 按 ID 查询单个用户 |
技术栈非常简洁:Python 3.9+ 和 Flask 3.x。
二、搭建 Flask REST API
2.1 项目初始化
首先创建项目目录和依赖文件:
mkdir python-web-service && cd python-web-service
echo "flask" > requirements.txt
安装依赖:
pip install -r requirements.txt
2.2 编写核心代码
创建 app.py,实现所有 API 端点:
#!/usr/bin/python3.9
from flask import Flask, jsonify
from datetime import datetime
app = Flask(__name__)
# 示例用户数据
USERS = [
{"id": 1, "name": "张三", "email": "zhangsan@example.com", "role": "admin"},
{"id": 2, "name": "李四", "email": "lisi@example.com", "role": "developer"},
{"id": 3, "name": "王五", "email": "wangwu@example.com", "role": "tester"},
{"id": 4, "name": "赵六", "email": "zhaoliu@example.com", "role": "developer"},
{"id": 5, "name": "孙七", "email": "sunqi@example.com", "role": "viewer"},
]
@app.route("/")
def index():
"""欢迎页面,返回服务名称和所有可用 API 列表"""
return jsonify({
"service": "Python Web Service",
"message": "欢迎使用 Python Web Service API",
"available_endpoints": ENDPOINTS,
})
@app.route("/health")
def health():
"""健康检查接口"""
return jsonify({
"status": "ok",
"timestamp": datetime.now().isoformat(),
})
@app.route("/api/users")
def get_users():
"""返回示例用户列表"""
return jsonify({"users": USERS, "total": len(USERS)})
@app.route("/api/users/<int:user_id>")
def get_user(user_id):
"""根据 ID 查询单个用户"""
user = next((u for u in USERS if u["id"] == user_id), None)
if user:
return jsonify({"user": user})
return jsonify({"error": f"用户 ID {user_id} 不存在"}), 404
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8080)
代码结构清晰:用列表存储示例数据,每个路由对应一个 API 端点,jsonify 统一返回 JSON 格式响应。
2.3 本地验证
启动服务:
python app.py
测试几个接口:
# 健康检查
curl http://localhost:8080/health
# 返回: {"status": "ok", "timestamp": "2026-10-28T..."}
# 用户列表
curl http://localhost:8080/api/users
# 返回: {"users": [...], "total": 5}
# 单个用户
curl http://localhost:8080/api/users/1
# 返回: {"user": {"id": 1, "name": "张三", ...}}
一切正常,服务在本地 8080 端口运行。
三、代码托管到 GitCode
GitCode 是华为云提供的代码托管平台,类似 GitHub,与华为云生态深度集成。
3.1 创建仓库
在 GitCode 上创建仓库 python-web-service,获取仓库地址:
https://gitcode.com/Aci1998/python-web-service.git
3.2 推送代码
git init
git add .
git commit -m "Initial commit: Python Flask Web Service"
git remote add origin https://gitcode.com/Aci1998/python-web-service.git
git push -u origin main
代码已托管到 GitCode,可以在浏览器中查看代码结构、提交历史。
小提示:GitCode 支持 OAuth 授权登录,无需每次输入账号密码。在开发者工具中完成一次授权,后续推送即可免密操作。
四、通过 DevBridge 暴露本地服务
现在服务只在本地运行,外部无法访问。传统方案需要购买云服务器、部署应用、配置安全组和公网 IP——成本高、步骤多。
DevBridge(开发隧道)是华为云提供的开发工具,可以将本地端口通过安全隧道暴露到公网,外部设备直接通过公网 URL 访问你的本地服务。
4.1 创建隧道
在开发环境中通过 DevBridge WebUI 创建隧道:
- 打开 DevBridge 管理界面(端口 13000)
- 创建新隧道,配置本地端口
8080,协议选择HTTP - 启动隧道
4.2 获取公网访问地址
隧道创建后,DevBridge 会分配一个公网 URL,类似:
https://xxx.devbridge.huaweicloud.com
现在,任何人通过这个 URL 都可以访问你本地的 Flask 服务:
# 从外部设备访问
curl https://xxx.devbridge.huaweicloud.com/api/users
# 返回: {"users": [...], "total": 5}
4.3 DevBridge 的优势
| 对比项 | 传统方案(ECS + EIP) | DevBridge 隧道 |
|---|---|---|
| 成本 | 需购买云服务器 + 公网 IP | 免费 |
| 部署时间 | 10-30 分钟 | 1 分钟 |
| 配置复杂度 | 安全组、防火墙、Nginx 等 | 一键创建 |
| 适用场景 | 生产环境 | 开发调试、演示分享 |
DevBridge 非常适合开发阶段的快速分享和联调,不需要任何基础设施投入。
五、发布到华为云作品陈列馆
项目完成后,可以将作品发布到华为云高校运营平台的作品陈列馆,供其他开发者浏览和学习。
发布流程:
- 准备项目介绍和说明文档
- 在平台上提交作品信息(项目名称、描述、代码仓库链接等)
- 平台审核通过后,作品公开展示
六、总结
本文完整展示了从代码编写到服务分享的全流程:
编写 Flask API → 本地测试 → GitCode 托管 → DevBridge 隧道分享 → 作品陈列馆发布
关键收获:
- Flask 轻量高效:几十行代码即可构建完整的 REST API,适合快速原型开发
- GitCode 无缝集成:与华为云生态深度整合,代码托管和协作体验流畅
- DevBridge 省钱省时:无需购买云服务器即可暴露本地服务,开发调试效率大幅提升
- 端到端闭环:从开发到分享,全部在华为云开发者工具链中完成
如果你也在寻找一种轻量级的本地服务分享方案,不妨试试 DevBridge,一分钟即可上手。
项目源码:GitCode 仓库
技术栈:Python 3.9 + Flask 3.x + GitCode + DevBridge
- 点赞
- 收藏
- 关注作者
评论(0)