SuperAPI AI 工具集

aureuserp-api-builder

编程与开发

查看项目

更新于 10-16 05:00

技能介绍

用途:依据 AureusERP 共享插件约定,生成或更新 Laravel 插件 REST API,适用于新增 API 资源或将现有端点重构为统一风格。

主要能力与工作流:先阅读 references/api-conventions.md,再检查目标插件模块(模型、现有策略、路由、Filament 资源与页面)。生成前需分析 Filament 资源:从页面与动作映射工作流/状态流转,提取表单校验规则(含条件必填与嵌套 repeaters),从用户可编辑字段构建请求负载定义(排除只读、计算、系统管理字段),识别父级 Filament 资源及可选插件依赖(用 Schema::hasTable 或 Schema::hasColumn 守卫判断)。

实现顺序:routes/api.php 路由,src/Http/Controllers/API/V1 控制器,src/Http/Requests 表单请求,src/Http/Resources/V1 资源,软删除时补充 restore、forceDelete 策略方法。继承约定:请求类与 HTTP 资源类应继承另一插件的对应父类,子类只保留增量逻辑。

必要约定:路由组使用 Route::name('admin.api.v1.<plugin>.')->prefix('admin/api/v1/<plugin>')->middleware(['auth:sanctum'])->group(...);软删除资源用 Route::softDeletableApiResource(...) 并实现 restore() 与 forceDestroy();控制器与端点使用 Scribe 属性;每个端点用 Gate::authorize(...);使用 Spatie\QueryBuilder\QueryBuilder 并显式声明 allowedFilters、allowedSorts、allowedIncludes;CRUD 返回 API 资源,删除成功返回 { "message": "..." }。FormRequest 规则用数组形式(如 ['required','email']),更新用 $isUpdate 逐字段三元规则,枚举用 Rule::enum(Status::class),只暴露可写字段,并为文档提供 bodyParameters()。JsonResource 包含标量 ID/时间戳及 whenLoaded(...) 条件关系。可选插件功能需用 Package::isPluginInstalled('<plugin>') 守卫,缺失时返回优雅的空/默认响应。

验证:检查路由注册,若存在针对性测试则运行。注释只写在函数定义上方,函数体内不加注释。

限制:资料未提供安装命令、价格、平台支持范围或具体测试用例,暂未提供。