SuperAPI AI 工具集

add-endpoint

编程与开发

查看项目

更新于 10-15 11:46

技能介绍

用途

add-endpoint 是 Activepieces 项目中的一个技能,适用于需要新增 API 端点、路由或 HTTP 处理器的场景。根据描述,它在新增 Fastify 控制器端点时应始终被使用。

主要能力

该技能提供了一套新增端点的标准步骤与代码模式,涵盖以下环节:

  • 读取参考模式:打开 packages/server/api/src/app/tables/table/table.controller.ts 作为参考。
  • 使用 FastifyPluginAsyncZod 创建或更新控制器。
  • 在控制器之后(而非内联)定义路由配置,包含 config 与 schema 两部分。
  • 选择安全访问方式。
  • 创建模块并在 app.ts 中注册。
  • 如涉及新权限,在 @activepieces/shared 中新增 Permission。
  • 使用 npm run lint-dev 进行验证。

使用方式

第一步:读取参考模式

打开 packages/server/api/src/app/tables/table/table.controller.ts 作为参考。

第二步:创建或更新控制器

使用 FastifyPluginAsyncZod:

export const myController: FastifyPluginAsyncZod = async (fastify) => { fastify.post('/', CreateRequest, async (request) => { return myService(request.log).create({ projectId: request.projectId, request: request.body, }) }) }

第三步:在控制器之后定义路由配置

const CreateRequest = { config: { security: securityAccess.project( [PrincipalType.USER, PrincipalType.ENGINE, PrincipalType.SERVICE], Permission.WRITE_MY_FEATURE, { type: ProjectResourceType.BODY }, ), }, schema: { tags: ['my-feature'], body: CreateMyFeatureRequest, // Zod schema from @activepieces/shared response: { [StatusCodes.CREATED]: MyFeature }, }, }

第四步:选择安全访问方式

  • securityAccess.project(principals, permission, { type: ProjectResourceType.X }) — 项目范围
  • securityAccess.platformAdminOnly(principals) — 仅管理员
  • securityAccess.publicPlatform(principals) — 任意平台成员
  • securityAccess.public() — 无鉴权

第五步:创建模块并在 app.ts 中注册

export const myModule: FastifyPluginAsyncZod = async (app) => { app.addHook('preSerialization', entitiesMustBeOwnedByCurrentProject) await app.register(myController, { prefix: '/v1/my-features' }) }

第六步:新增权限(如需要)

在 @activepieces/shared 的 Permission 枚举中新增。

第七步:验证

npm run lint-dev

适用场景

该技能面向 Activepieces 后端 API 开发,适用于需要新增 Fastify 控制器端点的开发任务,包括新增路由、HTTP 处理器以及相应的权限配置与模块注册。

限制

资料中未提供关于该技能的平台限制、收费、价格、效果或性能等信息,相关内容暂未提供。