一个 GraphQL API 项目结构样例

GraphQL 是一个强大的查询语言和运行时环境,它可以帮助前端开发人员更好地管理和组织 API。构建一个 GraphQL API 的过程中,一个清晰、有层次结构的项目结构非常关键。在本文中,我们将介绍一个建议的 GraphQL 项目结构,并提供了示例代码。

项目结构

我们认为,一个好的 GraphQL 项目应该具备以下目录结构:

接下来,我们会详细讲解每一个目录的作用。

graphql 目录

该目录用于存储 GraphQL 的对外接口。在这个目录中,我们需要创建一个公共的 GraphQL Schema。GraphQL Schema 用于定义 API 的数据类型以及数据查询的规则。虽然 GraphQL Schema 的定义可以分布在不同的文件中,但是我们建议将所有的 Schema 集中在一个文件中,以方便管理。一般来说,文件名为 schema.js。

models 目录

该目录用于存储应用程序中的数据模型,这些数据模型可以用于定义数据类型以及对这些类型进行 CRUD 操作。对于 GraphQL 项目来说,数据模型通常是由 ORM (例如 Sequelize 或 Mongoose)生成的。除了数据模型之外,我们也可以将相关的数据库文档也保存在这个目录中。

resolvers 目录

该目录用于存储 GraphQL 的数据解析器。数据解析器是用于定义具体的数据查询逻辑,这些逻辑通常是由后端数据模型或 API 提供的数据。在 resolvers 目录中,我们需要创建解析器,以将模型中的数据映射到针对特定查询的响应。例如,如果我们要查询书籍数据,则需要从数据库中获取相关的数据并提供响应。

typeDefs 目录

该目录用于存储 GraphQL Schema 定义。Schema 定义描述了可操作数据的类型以及可执行的查询和变更。在 typeDefs 目录下,我们提供了 GraphQL Schema 的相关文件类型,包括 Book 类型和 Author 类型(由 Query 类型组成)。

示例代码

下面是我们使用上述目录结构组织的一个 GraphQL API 的示例代码:

总结

在这篇文章中,我们介绍了一个 GraphQL API 项目的一个常见的目录结构,并提供了一些示例代码。使用这个推荐的目录结构,我们可以轻松地组织和管理一个 GraphQL 项目,以便更方便地添加,维护和扩展 API 功能。我们建议你对这个结构进行修改,以适应你的具体需求,并在实践中使用它来构建更好的 GraphQL API。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6539626f7d4982a6eb2af94f


纠错
反馈