API Design

所有接口都用 POST,不是最佳实践,但可能是组织选择

“所有接口都用 POST”听起来像反 REST,但在一些公司里,它确实可能是经过组织成本计算后的选择。问题不该停在 GET/POST 哪个更正统,而要问:哪种接口规范能降低沟通、网关治理、监控、安全、客户端实现和问题定位的总成本。

HTTP 语义有价值,但不是唯一目标

GET 适合安全、幂等、可缓存的资源读取;POST 适合提交复杂请求体、写入动作和不希望暴露在 URL 中的数据。严格 REST 的好处是语义清晰、工具生态成熟;统一 POST 的好处是请求形态稳定、网关路由和客户端封装可能更简单。

什么时候统一 POST 有合理性

  • 业务动作很复杂,很难自然映射成资源。
  • 内部网关需要统一鉴权、签名、防重、染色和路由。
  • 动态接口默认不希望 HTTP 层缓存。
  • 客户端多端一致性比 REST 语义更重要。

风险也要讲清楚

  • 失去 GET 的缓存、可分享 URL 和天然可观测语义。
  • 接口动作可能被藏进 body 或 header,文档和审计要求更高。
  • 如果规范只是为了偷懒,会让系统长期不可读。

好的 API 规范不是宗教。能解释取舍、能被工具约束、能被监控理解、能让业务更快稳定交付,才算合格。