SuperAPI AI 工具集

drupal-api-endpoints

编程与开发

查看项目

更新于 10-16 05:50

技能介绍

用途:为 Drupal 自定义 API 端点提供实现规范,覆盖路由、控制器与前端 fetch 调用。

主要能力与规则:始终使用 UUID 而非顺序实体 ID;新建前先检索已有端点;不使用核心 REST 模块而用自定义路由;请求与响应一律用 JSON;必须实现访问控制与缓存。路由应放在拥有该功能的模块内,路径统一采用 /MODULE-api/resource/action,避免 /api/*(保留给 JSON:API)。

实现方式:在 MODULE.routing.yml 定义路径、控制器、方法与权限要求(如 _user_is_logged_in、_format: json);控制器用 loadByProperties(['uuid' => $uuid]) 按 UUID 加载实体,校验 JSON 负载并返回统一 JSON 结构,访问控制建议返回 AccessResult 并附缓存依赖。客户端可用 fetch 配合 CSRF 令牌(来自 /session/token)与乐观 UI,失败时回滚;若客户端为 JS 框架,应同时参考该框架的转义与 XSS 规范。

注意事项:仅 CacheableResponseInterface(如 CacheableJsonResponse)携带缓存元数据,普通 JsonResponse 不会被动态页面缓存。面向已安装客户端时,新增字段安全,删除、改名或置空属于破坏契约;需记录各受支持版本所读字段并测试所有响应分支。Webhook 处理须按对象加锁、幂等 upsert、竞态安全地自动创建用户、记录每次尝试。JSON:API 过滤须实现 hook_jsonapi_ENTITY_TYPE_filter_access(),否则 TemporaryQueryGuard 会加入 WHERE 1 = 0 导致缓存污染。调试可用 drush watchdog:show 与 curl 测试端点。

限制:未提供具体版本依赖、性能基准或官方发布信息,相关内容暂未提供。