用途:该技能面向 GraphQL + Apollo Server + Express + Prisma 技术栈,提供从 schema 设计到解析器、服务层、错误处理的模式规范,目标是让 API 在真实流量下保持可维护与可测试。
主要能力:一是 schema-first 设计,按客户端需求而非数据库结构建模,采用 Money 类型(以分为单位而非浮点)、mutation 输入类型、payload 模式(每次 mutation 返回 { entity, errors: [UserError!]! } 而非抛错),以及基于游标的分页(如 ProductConnection 含 edges、pageInfo、totalCount)和过滤、排序输入类型与枚举。二是解析器模式,解析器仅作薄编排,认证检查可放在解析器,业务逻辑下沉到服务层,字段解析器用于计算或关联数据。三是 Prisma 集成,服务层封装 Prisma,处理游标分页(多取一条判断 hasNextPage)、过滤条件与排序映射、捕获 Prisma 错误并转为结构化 UserError。四是 DataLoader 防 N+1,按请求在 context 中创建 loader,把结果映射回输入顺序,在字段解析器中使用 load(id)。五是错误策略,业务错误放入 payload,认证错误抛 Apollo 的 AuthenticationError、ForbiddenError。六是 Cognito 认证,在 context 创建时校验 JWT,无效或缺失时返回 null user 而非抛错。还给出文件结构建议(graphql/schema、resolvers、context.ts、services、dataloaders)与反模式清单、自查表。
使用方式与限制:资料未提供具体安装命令或调用步骤。适用场景包括构建需要清晰分层和性能保障的 GraphQL 服务。简单 CRUD、实时订阅、需 HTTP 缓存的公开 API、文件上传等场景,资料建议考虑 REST、Subscriptions 或签名 URL 等替代方案。具体代码示例位于 assets/schema-examples.md 与 assets/implementation-patterns.md,本简介未展开。