目录
发挥 TypeScript 和 GraphQL 的威力
GraphQL 是一种用于 API 的强大查询语言,也是用现有数据实现这些查询的运行时。 它是一种解决 REST API 通常存在的许多问题的优雅方法。 有关背景信息,建议阅读 GraphQL 和 REST 之间的比较。 GraphQL 与 TypeScript 结合使用, 帮助您在 GraphQL 查询中实现更好的类型安全,为您提供端到端的类型支持。
在本章中,我们假设您对 GraphQL 有基本的了解,并专注于如何使用内置的 @nestjs/graphql
模块。
GraphQLModule
可以配置为使用 Apollo server(使用 @nestjs/apollo
驱动)和
Mercurius(使用 @nestjs/mercurius
)。
我们为这些经过验证的 GraphQL 包提供了官方集成,以提供在 Nest 中使用 GraphQL 的简单方式
(在此处查看更多集成)。
您还可以构建自己的专用驱动程序(在此处阅读更多信息)。
安装
首先安装所需的软件包:
# 对于 Express 和 Apollo(默认)
npm i @nestjs/graphql @nestjs/apollo @apollo/server graphql
# 对于 Fastify 和 Apollo
# npm i @nestjs/graphql @nestjs/apollo @apollo/server @as-integrations/fastify graphql
# 对于 Fastify 和 Mercurius
# npm i @nestjs/graphql @nestjs/mercurius graphql mercurius
warning
@nestjs/graphql@>=9
和 @nestjs/apollo^10
软件包与 Apollo v3 兼容
(有关详细信息,请查看 Apollo Server 3 迁移指南),
而 @nestjs/graphql@^8
仅支持 Apollo v2(例如,apollo-server-express@2.x.x
软件包)。