OpenCode: 智能AI编程助手,革命性的软件开发体验
围绕 OpenCode 这类 AI 编程助手的体验与使用场景,整理它在理解上下文、辅助开发和提升效率方面的价值,也记录个人对 AI 编程工具边界的观察。
记录用 FastAPI 搭建简单 API 接口的过程,包括基础路由、运行方式和接口测试,是早期后端实践笔记。
上一篇文章我们简要介绍了Github Action的使用,再次以天气邮件为例,如果我们需要使用githubAction给很多人发信息,就需要收集很多人的地址/电子邮箱等私人信息,作为一个公有仓库,我们是不希望这些信息被公开的,当然有些小伙伴会说,github可以讲仓库设置为不公开,当然是可以的,不过github作为一个开源社区,为了防止私人白嫖,github对不公开仓库的Github Action有很大的限制,因此我们需要一些办法来解决信息存储的问题。
Github Secret可以设置一个私人的环境变量,在GitHub action中配置后可以将其作为环境变量导入

在仓库->settings-> Secrets and variables->Action中可以看到可以为整个仓库设置Secrets,也可以自己创建环境后设置环境变量,我们在这里就使用Repository secrets来创建。
那这里我们就可以想到我们可以利用这个键值对来储存用户信息,但是这样显然是不好的,扩展性非常差而且存储的信息很有限,CRUD也十分麻烦,所以我们需要一点其他方法
实际上这个secret更常见的作用是用于存储一些秘密、cookie等敏感信息等,所以我们可以考虑建设一个api接口作为用户的接口
当然都有服务器了为什么不直接在服务器上运行这个项目呢,咳咳,这个嘛,能白嫖一点是一点,主要是折腾嘛不寒碜
目前我们的需求非常简单,我们只需要创建一个接口来输出用户信息,因此我们不需要非常复杂的框架,作为一个只需要CRUD的api,目前最火最简便的解决方案就是fastapi了
fastapi的配置和编码都非常简单,有多简单呢:
pip install fastapi, unicorn #unicorn用于运行服务
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_users():
return {'坤坤':'鸡'}
unicorn main:app --reload
这7行,你就已经搭建了一个api服务,当然也只是实现了返回一个键值对
但是有了这个实践,对于返回用户来说,如果需求不大,甚至直接用一个文件来存储用户就行,写下来也就几十行
from fastapi import FastAPI
from Utils import *
import json
app = FastAPI()
@app.get(“/users/”)
async def read_users(key: str):
if key == ‘api930080’:
return get_users_dict(‘users’)
else:
return {“error”: “key error”}
@app.get(“/users/test”)
async def read_users_test(key: str):
if key == ‘api930080’:
return {‘21307130326@m.fudan.edu.cn’: ‘上海市’}
else:
return {“error”: “key error”}
这样一个简单的api就实现了,只要使用一个ASGI web server简单部署就可以运行了
当然了,如果只是使用一个API的话似乎也不能防止信息泄露,其他人一样可以调用接口获得信息,这时候我们使用一个key的参数,相当于一个密码,来控制访问,fastapi添加参数的方式也很简单,只需要在装饰器下的函数添加参数即可,参数名就是get的参数名,直接在函数逻辑中判断即可
这时我们就可以将这个key放在github actions的环境中,这下离完成白嫖github更近一步啦