AI 为啥总抛弃 REST?生成 API 的真相
AI 为啥总不爱用 REST?生成 API 的那些事儿
你在敲代码,让 AI 帮你搞个 API 接口,结果呢?它给你来个 POST,里面塞满 RPC 风格的参数,明明 REST 里该用 GET 就行。是不是超眼熟?
这事儿太常见了,得问问:是训练数据偷懒,还是有啥深层原因?
REST 标准没你想得那么“铁板钉钉”
先别急着怪 AI,说实话,REST 就是一套架构思路,不是硬规定。它更像个理念,语言模型学起来容易模糊。
REST 的核心:
- 读数据用 GET,安全又幂等
- 创建资源用 POST
- 紧扣 HTTP 语义
- 保持无状态
这些是 HTTP 最佳实践的精华。但代码里没人强制你遵守。你完全能忽略 REST 建个好使的 API,很多生产环境就这么干。
AI 训练数据里到底藏着啥
真相有点扎心:训练数据乱七八糟。从 GitHub、Stack Overflow、各种文档里抓数据,你猜分布咋样?
常见套路:
- RPC 风格 API 满天飞:内部微服务、GraphQL、老系统,还有一堆实用主义代码,不在乎 REST 纯度
- 啥都 POST:验证简单、扩展容易、调试方便(POST 响应日志不一样)
- 框架默认 POST:不少热门框架就把 POST 当安全首选
- 安全顾虑:敏感查询怕 URL 暴露,就全 POST 掉
从统计角度,AI 看多了这些,觉得 POST 更“万能”。它没错,就是按真实代码频率优化。
Token 省着点用,也是个原因
再简单说:token 贵。
RPC 风格的 POST:
POST /api/users
{ "action": "getUser", "id": 123 }
REST 的 GET:
GET /api/users/123
AI 一 token 一 token 生成,简单路径少纠结,计算成本低。主因?不一定是。但值得想想。
REST 真有局限,AI 可能看出来了
换个角度:REST 不是万能钥匙。
GraphQL 火起来,就是因为 REST 响应形状太死板。查询语言流行,是因为 REST 的 query string 规模一大就崩。内部微服务干脆扔掉 REST,在封闭环境里好处不明显。
AI 是不是在潜意识里get到:REST 适合特定场景,比如公网 API、客户端-服务器架构?内部通信就不必死磕了?
这就能解释为啥它偏爱 RPC——不是 REST 错,而是 REST 不总对。
真相是啥?多因素混一起
说白了,组合拳:
- 数据分布:真实代码里非 REST 更多
- 理念模糊:REST 是哲学,模型难抓牢
- Token 效率:简单生成快
- 场景敏感:它知道 REST 有边界
想让 AI 生成靠谱 REST API?这样提示
别含糊,直接说清:
按 REST 最佳实践生成 API 接口。
读操作用 GET,带上正确 HTTP 状态码。
模型:User { id, name, email }
约束越明确,AI 越准。就是 API 设计的提示工程。
关键启发
AI 不是故意怼 REST,它在反映真实世界的代码习惯。REST 优雅,但只是选项之一,现实不总选它。
顶级 API 设计,得懂啥时候用 REST(公网 API、浏览器客户端、分布式系统),啥时候务实(内部服务、高性能路径、遗留系统)。
AI 早学会了,咱们也跟上吧。
下一个项目想直接上生产级 API 架构? NameOcean 的 Vibe Hosting 平台有 AI 开发工具,能记住你的风格。定好模式,生成代码自动适配。了解 NameOcean 智能构建。