如何将Python地形生成代码封装为可通过REST API调用的云端服务
适配改造及部署指导
1. 封装Python代码为REST接口
- 优先选择FastAPI作为Web框架,轻量化且对新手友好,无需编写冗余的路由、参数校验逻辑,天生适配REST API开发规范。
- 将你现有地形生成的核心逻辑封装为独立可调用函数,明确输入参数(如地形尺寸、噪声系数、随机种子等)和输出格式(如高程数组、地形灰度图/三维文件流等)。
- 最小化的接口示例代码如下:
from fastapi import FastAPI import 你原有地形代码的模块名 # 直接导入你已有的Python代码即可 app = FastAPI() @app.post("/generate-terrain") def generate_terrain(size: int = 1024, seed: int | None = None): # 直接调用原有代码的生成逻辑 terrain_result = 你原有地形代码的模块名.生成函数(size, seed) # 按业务需要返回格式,比如把numpy数组转成列表返回JSON,或者直接返回文件流 return {"code": 0, "data": terrain_result.tolist()}
- 本地调试接口正常运行后,执行
pip freeze > requirements.txt导出所有依赖包,包括numpy、FastAPI、uvicorn等运行必需的库。
2. 适配Heroku部署配置
- 在项目根目录新建
Procfile文件,写入内容web: uvicorn main:app --host 0.0.0.0 --port ${PORT},Heroku会自动识别该配置启动服务。 - 新增
runtime.txt文件,写入你本地使用的Python版本,例如python-3.10.12,避免版本兼容问题。 - 如果你的代码依赖额外的系统底层库(如部分科学计算、图像处理类依赖),可以新增
Aptfile文件,逐行写入需要安装的系统包名,Heroku的构建流程会自动完成安装。
3. 部署与调用
- 将所有代码提交到Git仓库后,关联你的Heroku应用直接推送代码即可,Heroku会自动完成依赖安装、服务启动全流程。
- 部署完成后,你在Kotlin项目中直接向对应Heroku域名的接口发起HTTP请求,解析返回结果即可,无需修改原有Python代码。
注意事项
- Heroku免费版本的接口请求超时限制为30秒,如果你的地形生成逻辑耗时较长,可增加简单的异步任务逻辑:接口收到请求后先返回任务ID,客户端轮询任务状态获取结果即可。
- 无需额外运维配置,Heroku会自动完成进程保活、基础负载均衡等工作,对新手足够友好。
内容的提问来源于stack exchange,提问作者Matthias K.
相关产品推荐
相关产品推荐

