家里装了个NAS,顺手跑了个自建博客;买了个树莓派,又折腾起家庭自动化。现在不少朋友都在家搞点小开发,写几个脚本调用天气、快递、智能家居的接口,可一到写文档就卡壳——接口怎么传参?返回字段啥意思?Postman点十次都记不住。
别再手写Markdown了
以前写API文档,有人丢个Word,有人贴段JSON示例加几行注释,改一次全得手动同步。直到发现 Swagger UI 和 Redoc 这类开源工具,配个 YAML 或 JSON 文件,页面自动渲染成带交互测试框的网页,连我妈点点“Try it out”都能看到返回结果。
推荐三个真能跑在家里的轻量项目
1. Swagger UI(官方Docker版)
下载一个 swagger.json 文件,丢进 Docker 容器,三行命令就跑起来:
docker pull swaggerapi/swagger-ui
docker run -p 8080:8080 -e SWAGGER_JSON=/foo/swagger.json -v ${PWD}:/foo swaggerapi/swagger-ui打开 http://localhost:8080,接口列表、参数下拉、响应预览全都有,改完 JSON 刷新页面就行。
2. Slate(静态生成型)
适合喜欢“写完就发”的人。用 Ruby 写几段 Markdown,执行 bundle exec middleman build,直接吐出一套纯静态 HTML 文档站,扔进你家 NAS 的 Web 目录,全家都能看,连服务器都不用开。
3. Docgen(Python 小工具)
如果你的接口是 Flask 或 FastAPI 写的,它能自动从代码注释里抽字段,生成 OpenAPI 格式描述文件,再喂给 Swagger UI。改一行代码注释,文档跟着变,不漏不重。
真实场景:周末给老爸做个快递查询页
上周用快递鸟 API 写了个简易查询页,把 api_key 和 logistic_code 参数说明、返回的 data.status 含义、常见错误码列清楚,用 Slate 编译成 index.html,放在我家群晖的 Web Station 下。老爸手机浏览器输 http://nas.local/kd,自己填单号就能查,再也不用截图问我“这个‘已签收’是啥时候的事?”
开源不是只给大厂用的,文档工具也一样。挑一个顺手的,今晚花半小时搭好,明天调接口就少翻三遍代码。