知海

JavaScript:GraphQL Modules(模块化工具)

graphql-github-io-zh-Hans生态项目与库

JavaScript:GraphQL Modules(模块化工具)

概述

GraphQL Modules 是一个用于将 GraphQL 后端实现拆分为小型、可复用、易于实现和测试的模块的库。它提供了一套清晰的机制来组织 schema、resolver、context 和自定义逻辑,使得大型 GraphQL 项目也能保持代码结构清晰、边界明确,并支持依赖注入和模块组合。

核心特性

  • 模块化架构:允许将 GraphQL 功能按业务领域或功能拆分为独立模块,每个模块拥有自己的类型定义、解析器和上下文。
  • 依赖注入:内置依赖注入容器,简化模块间协作,提升代码可测试性与可维护性。
  • 模块组合:支持通过组合多个模块构建统一 schema,并自动处理类型冲突与命名空间隔离。
  • TypeScript 友好:提供完整的类型推导和装饰器支持,适合现代 TypeScript 后端项目。
  • 渐进式采用:既可整库用于新项目,也可逐步引入到现有 GraphQL 服务中。

快速开始

安装依赖:

bash 复制代码
npm install graphql-modules graphql

创建第一个模块:

typescript 复制代码
import { createModule, gql } from 'graphql-modules';

const userModule = createModule({
  id: 'user',
  typeDefs: gql`
    type Query {
      user(id: ID!): User
    }
    type User {
      id: ID!
      name: String
    }
  `,
  resolvers: {
    Query: {
      user: (_, { id }) => ({ id, name: 'Alice' })
    }
  }
});

组合模块并创建执行上下文:

typescript 复制代码
import { createApplication } from 'graphql-modules';

const application = createApplication({
  modules: [userModule]
});

// 在 GraphQL 服务器中使用 application.schema 和 application.createExecution()

相关链接

帮助我们改进文档

发现翻译问题或内容错误?请告诉我们。