链接存在性可以驱动前端操作入口渲染
前端可以通过检查资源响应中是否存在特定操作链接,决定是否显示对应的按钮、菜单项或操作入口。
为什么重要
在传统前端权限模型中,组件通常需要写入权限判断逻辑,例如 hasPermission('user:delete')。这会让 UI 组件直接依赖权限点和业务规则。
如果 API 响应中已经包含当前用户可以执行的操作链接,前端就可以把入口渲染逻辑改为检查链接是否存在。这样,UI 不再关心“为什么这个用户能删除”,只关心“当前资源是否声明了 delete 操作”。
核心内容 / 成立机制
链接存在性驱动 UI 的基本规则是:
有对应
rel链接,就显示对应操作入口;没有链接,就不显示入口。
例如:
{_links.delete && (
<button onClick={() => handleDelete(user)}>删除用户</button>
)}这里的 delete 链接是服务端计算权限和资源状态后的结果。前端只消费这个结果,不复制服务端的判断逻辑。
应用要点
- 操作按钮、菜单项、快捷操作都可以由链接存在性驱动。
- 链接最好包含
href、method,必要时包含请求体类型或表单描述。 - 前端仍然要处理执行操作时返回的
403、404、409等错误。