rel 是超媒体权限中前后端协作的稳定契约

在超媒体驱动权限中,rel 是前端识别操作语义的稳定契约:前端不依赖具体权限点或 URL,而是依赖链接关系名来理解当前资源支持哪些操作。

为什么重要

超媒体驱动权限并不意味着前端完全不需要协议。前端虽然可以不关心 user:delete 这类权限点,也不关心删除接口的具体 URL,但它仍然需要知道某个操作链接代表什么语义。

这个语义通常由 rel 承担。例如:

  • self 表示当前资源;
  • update 表示可更新;
  • delete 表示可删除;
  • promote 表示可晋升。

如果 rel 命名不稳定,前端就会从硬编码权限点,转向硬编码一组混乱的操作名,耦合问题只是换了形式。

核心内容 / 成立机制

rel 的作用是把“操作语义”从具体实现中抽离出来:

  • URL 可以变化;
  • 权限规则可以变化;
  • 后端实现可以变化;
  • 但前端识别操作的语义名应尽量稳定。

因此,超媒体权限中的前后端协作重点,不是约定每个权限点,而是约定一组稳定、清晰、可复用的操作关系。

应用要点

  • rel 应优先表达业务操作语义,而不是接口路径。
  • 常见操作应使用一致命名,避免同义词分裂。
  • 对复杂业务操作,应建立可维护的 rel 命名规范。
  • 前端组件应围绕稳定的 rel 渲染操作,而不是围绕权限点或 URL。