
Gopeed 本地开发如何启动 API 后端与 Flutter 前端进行联调【免费下载链接】gopeedA fast, modern download manager for HTTP, BitTorrent, Magnet, and ed2k. Cross-platform, built with Golang and Flutter.项目地址: https://gitcode.com/GitHub_Trending/go/gopeedGopeed 由 Go 后端和 Flutter 前端两部分组成前端源码位于ui/flutter目录。官方贡献指南建议通过 web 端进行开发调试先用命令行启动 Go 后端 API 服务再以 debug 模式启动 Flutter 前端两者即可连通。本文按这条路径说明本地联调的完整操作准备环境、启动后端、启动前端、判断联调是否生效以及修改 API 模型和提交前的必要命令。环境要求README 的开发环境一节给出的最低要求是Go 1.25Flutter 3.41先获取代码git clone gitgithub.com:GopeedLab/gopeed.git后续所有命令默认在仓库根目录下执行。第一步启动 Go API 后端在仓库根目录执行go run cmd/api/main.go这条命令就是 CONTRIBUTING.md「本地开发」一节指定的后端启动方式服务默认端口为9999。看 cmd/api/main.go 的源码可以确认它只用于本地开发注释写明only for local development启动参数是硬编码的不需要也不应该手动修改cfg : model.StartConfig{ Network: tcp, Address: 127.0.0.1:9999, Storage: model.StorageBolt, WebEnable: true, }也就是说本地开发时后端通过 TCP 监听127.0.0.1:9999使用 Bolt 存储。执行后终端保持前台运行进程不退出即表示服务在运行。第二步以 debug 模式启动 Flutter 前端在ui/flutter目录下以 debug 模式启动前端项目即可运行。web 端即以浏览器为目标设备例如cd ui/flutter flutter run -d chrome这里的关键在于 debug 模式下前端的 API 地址默认就指向 9999 端口。gopeed_transport.dart 中定义了const defaultWebApiPort 9999;并说明 debug 模式连接 9999 端口的后端而 release 构建则使用页面自身的服务器来源。widget_test.dart 中的测试也固定了这一行为debug 模式下 web API 基址为http://127.0.0.1:9999/。所以只要第一步的后端还在运行前端发出的 API 请求就会落到127.0.0.1:9999上无需在前端再做任何连接配置。如何验证联调生效文档没有给出固定的成功日志可以依据以下行为判断后端进程正常驻留在go run cmd/api/main.go的终端里没有退出报错。debug 模式的 web 前端启动后页面数据任务列表等通过 REST 接口从 9999 后端获取前端能正常拉取数据并展示说明前后端已连通。修改 Go 后端代码后重新执行go run cmd/api/main.go前端下一次请求即为新逻辑的响应可以用来快速验证后端改动。按 backend-transport-architecture.md 的说明Flutter 设置页会展示 API 服务实际运行状态、监听地址以及启动失败时的lastError前端连不上后端时可以先到这里查看状态。修改 api/models 时需要 build_runner如果联调过程中要编辑ui/flutter/lib/api/model下的模型定义.g.dart由 build_runner 生成CONTRIBUTING.md 要求打开 build_runner watcherflutter pub run build_runner watch提交前必须执行的格式化CONTRIBUTING.md 要求每次提交前务必执行dart format ./ui/flutter边界说明官方推荐通过 web 端进行开发调试桌面原生打包c-shared构建 flutter build windows/macos/linux是另一条构建路径见 README.md 的 Build 一节不属于本文的本地联调流程。贡献流程上本项目只有main一个主分支先 fork在 fork 中开发完成后向main提 PR见 CONTRIBUTING.md。【免费下载链接】gopeedA fast, modern download manager for HTTP, BitTorrent, Magnet, and ed2k. Cross-platform, built with Golang and Flutter.项目地址: https://gitcode.com/GitHub_Trending/go/gopeed创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考