从零搭建 Flask REST API 并通过 DevBridge 一键分享——华为云开发者工具链实战

举报
yd_232903257 发表于 2026/10/28 21:30:36 2026/10/28
【摘要】 前言在云原生时代,开发者不仅需要写出好代码,还需要快速将服务暴露给外部测试、协作和验证。本文分享一次完整的实战经历:从零搭建一个基于 Flask 的 REST API Web 服务,将代码托管到 GitCode,再通过华为云 DevBridge 开发隧道将本地服务安全暴露给外部访问,最后发布到华为云作品陈列馆。整个流程不需要购买云服务器、不需要配置公网 IP,本地开发环境即可完成全部操作。...

前言

在云原生时代,开发者不仅需要写出好代码,还需要快速将服务暴露给外部测试、协作和验证。本文分享一次完整的实战经历:从零搭建一个基于 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 创建隧道:

  1. 打开 DevBridge 管理界面(端口 13000)
  2. 创建新隧道,配置本地端口 8080,协议选择 HTTP
  3. 启动隧道

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 非常适合开发阶段的快速分享和联调,不需要任何基础设施投入。

五、发布到华为云作品陈列馆

项目完成后,可以将作品发布到华为云高校运营平台的作品陈列馆,供其他开发者浏览和学习。

发布流程:

  1. 准备项目介绍和说明文档
  2. 在平台上提交作品信息(项目名称、描述、代码仓库链接等)
  3. 平台审核通过后,作品公开展示

六、总结

本文完整展示了从代码编写到服务分享的全流程:

编写 Flask API → 本地测试 → GitCode 托管 → DevBridge 隧道分享 → 作品陈列馆发布

关键收获:

  1. Flask 轻量高效:几十行代码即可构建完整的 REST API,适合快速原型开发
  2. GitCode 无缝集成:与华为云生态深度整合,代码托管和协作体验流畅
  3. DevBridge 省钱省时:无需购买云服务器即可暴露本地服务,开发调试效率大幅提升
  4. 端到端闭环:从开发到分享,全部在华为云开发者工具链中完成

如果你也在寻找一种轻量级的本地服务分享方案,不妨试试 DevBridge,一分钟即可上手。


项目源码:GitCode 仓库

技术栈:Python 3.9 + Flask 3.x + GitCode + DevBridge

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。