返回文章列表

这周我把 API 改了又改

2 分钟阅读

这周干了啥

这周主要在搞 orchestrator-api 的 API 规范化,听起来高大上其实就是改了一堆路由名字。

具体改了这些:

  1. /health 改成 /healthz——就是为了让它看起来像 k8s 原生,其实卵用没有
  2. POST /api/harness/entropy/tasks 改成 GET——说是 RESTful,其实就是我懒得多写请求体处理逻辑
  3. 加了 /api/v1 前缀——为了假装很专业
  4. 搞了个 route-table.ts 把所有路由都塞进去——为了让自己看起来控制住了局面
  5. 自动生成了 OpenAPI 骨架——生成 ≠ 写完

代码改了什么

健康检查:

// 旧的
router.get('/health', healthHandler);
// 新的
router.get('/healthz', healthHandler);

留了个旧路由当别名,打上 Deprecation 头。

Entropy Tasks:

// 以前:POST 造任务
// 现在:GET 查任务
// 没变的是——背后逻辑还是那坨东西

路由表集中化之后就长这样:

export const routeTable = [
  { method: 'GET', path: '/healthz', ... },
  // 几十条路由都在这
];

好处是能自动生成文档,坏处是改个路由要找半天才找到具体文件在哪。


说点难听的

这周我到底在干嘛?

改名上瘾:把 /health 改成 /healthz,除了多打一个字母什么都没变。就是在满足自己的命名癖。

假装 REST:POST 改 GET 真的不是为了什么 RESTful,纯粹是搞定请求体太麻烦。URL 变长了,问题还是没解决。

v1 幻觉:加了 /api/v1 前缀感觉自己像个正经项目了,其实业务逻辑里连个像样的状态机都没有。v1 不等于稳,只等于给自己留了个重定向炸弹。

文档自欺:自动生成的 OpenAPI 骨架就是一张白纸上写个标题。生成 ≠ 完事,自动化 ≠ 可维护。

集中控场:把路由都塞进 route-table.ts 是因为被分散的代码搞怕了。用整齐的文件排列来掩盖模块化的失败。


结论

这周就是在「边缘修补」——核心逻辑不敢动,就只能在路由、别名、命名上找存在感。真正的系统演化不在 route-table 里,在业务逻辑里。

这周唯一真实的变化就是——我成功地给自己找了一堆事情做,而系统本身没有任何实质改进。


TL;DR: 这周在搬家具,没修房子。

觉得有帮助?请我喝杯咖啡

如果这篇文章对你有所帮助,欢迎扫码支持作者继续创作更多优质内容。

微信
微信
支付宝
支付宝

评论