超媒体与 HATEOAS

响应中携带可用状态转移的链接(_links),客户端由服务端指引决定下一步可做什么;适合状态机明显的业务接口,实现与理解成本较高。

示例

示例
{
  "id": "1001", "status": "pending",
  "_links": {
    "self":   { "href": "/orders/1001" },
    "cancel": { "href": "/orders/1001/cancel", "method": "POST" }
  }
}
链接可见性可承担部分授权语义(不展示无权操作),但服务端仍必须做真实鉴权。

易错点

  • 前端只认展示不校验动作,取消链接可被越权调用
  • 链接 URL 硬编码域名,环境迁移后大量失效

数据来源与参考

  • Leonard Richardson & Mike Amundsen《RESTful Web APIs》
  • Roy Fielding 博士论文(2000)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌