SuperAPI AI 工具集

crud

通用与其它

查看项目

更新于 10-15 21:41

技能介绍

用途:在 AdonisJS + Inertia 项目中按统一分层约定实现端到端 CRUD 功能,使每个资源都遵循相同结构,新增资源只需复制形态而非重新设计。

主要能力与分层约定:路由用 router.resource(...) 并以 auth 中间件包裹;控制器保持瘦身,每个动作按“策略→校验→Action→渲染/重定向”顺序编排;每个写操作配 VineJS 校验器(vine.create,按实体分文件);用 BasePolicy 子类对每个方法做授权;每个写操作对应一个单一职责 Action 类(仅含 handle(input),不接收 HttpContext);Transformer 提供 toObject 及 forList、forEdit 等变体,避免直接向 Inertia 传 Lucid 实例;读侧放在 queries/ 下;UI 为 Inertia 页面,index 为整页,create/edit 为模态框。

使用方式:先完成模块脚手架,再按垂直切片推进——先打通 index(策略→查询→Transformer→页面)并跑绿测试,再扩展到 create/edit/delete。步骤涵盖模型与迁移、工厂、校验器、策略、Action、Transformer、列表查询、控制器、路由、Inertia 页面、i18n 与测试。完成后运行 pnpm typecheck && pnpm lint,再跑模块功能测试 pnpm ace test --files="<entities>"。

适用场景:AdonisJS + Inertia 项目的资源型功能开发,尤其是需要统一授权、校验与响应形态的团队。

限制与注意:资料未提供具体版本要求、安装命令或收费信息;文中列出的反模式(控制器写业务逻辑、跳过 bouncer.authorize、直接传模型、内联校验器、把自定义动词塞进资源控制器、控制器调用 auth.authenticate)应避免。