GraphQL 是一种用于 API 构建协议的查询语言,它提供了对 API 数据的强大且灵活的查询方式,同时附带了强大的类型系统,让我们能够以更高的效率和精准度完成开发工作。graphql-up 是一个方便的 npm 包,能够帮助我们将 GraphQL schema(模式)上传至 apollo server,接下来我们就来深入了解一下如何使用 graphql-up。
安装
使用 npm 安装:
$ npm install -g graphql-up
graphql-up 需要 node.js 环境,默认使用的是你的命令行最新的版本。同时,在通过命令行上传 schema 版本时,你的命令行需要联网。
使用
graphql-up 主要是两个命令行工具,它们分别是 init
和 push
。从字面上能够看出它们分别对应了两个操作:初始化工具和上传 schema 到云服务器。
初始化 schema
在对 schema 进行操作之前,我们需要将当前项目初始化为一个带有 schema 结构的 graphql 项目。
$ graphql-up init
在初始化阶段,程序会引导你创建一个可编辑文件,你可以直接关闭编辑器回车跳过,将使用默认配置。否则,你可以手动进入工具所生成的项目结构,进行各种自定义配置,例如 schema 定义位置, endpoint 地址等。具体可参见初始化建议部分。
上传 schema
在你的项目配置完成之后,你可以使用 push 命令直接将 schema 上传至云服务器。
$ graphql-up push
输入命令后,系统会自动进行 schema 的检查,根据检查结果为你提供修改意见,保证上传的 schema 结构正确无误。在修正后,你就可以预览当前 schema 文件,确认无误后将你的 schema 推送至云服务器。具体可参见上传建议部分。
初始化建议
在初始化之前,我们需要对开发环境进行一些调整以适应 graphql-up 的工作方式。
目录结构
使用 graphql-up 要求项目中必须包含 schema 文件,因此,我们建议创建如下的目录结构:
|-- root/ |-- schema/ |-- schema.gql
package.json 配置
在 package.json 中添加以下配置:
-- -------------------- ---- ------- - ---------- - -------- ----- -------------- -------- ------ ---------------- ----------- ------ --------------- ---- -- -- - - ---------- ---- ---- ------- ------- ------------- -------- -------------- --------------- ------------ ------------- -- -------- - -------- - ------------- ------------- - -- -------------- - --------------------------- - ------- ------- --------- -------- -- ------------------ - --------- -------- - - -
$ npm install --save @graphql-tools/graphql-file-loader tsconfig-paths
在 tsconfig.json 中添加:
{ "compilerOptions": { "baseUrl": "./", "paths": { "*": ["node_modules/*", "src/types/*"] } } }
schema 配置
在你的 schema 文件中,需包含基础的 schema 定义信息,例如 type Query,type Mutation 等。
-- -------------------- ---- ------- ---- ----- - ------ ------- - ---- -------- - ---------- -------- ------- - ----- ----- - ----- ------- ---- ---- - ---- ------ - ---------- -------- -------- ------- -
在你的 schema 文件夹下,可以另外定义查询或者变异:
schema/ |-- schema.gql |-- mutation/ |-- file.gql |-- query/ |-- file.gql
endpoint 配置
endpoint 是允许用户定义的云服务器地址,通常存在于 .env 配置文件中。
APOLLO_ENGINE_API_KEY=xxxxxx APOLLO_SERVER_ENDPOINT=https://graphql.example.com/graphql
上传建议
在上传 schema 之前,你需要确定以下信息:
- endpoint 地址(如
https://graphql.example.com/graphql
) - 你的 engine api key
将一个包含 schema 代码的文件夹上载到 apollo server 中:
$ graphql-up push --endpoint="$APOLLO_SERVER_ENDPOINT" --key="$APOLLO_ENGINE_API_KEY"
总结
使用 graphql-up 走向 GraphQL 的道路就不再是路上行人,而是跳跃挑战,因为 graphql-up 快捷高效的上手能力使我们可以省去很多配置繁琐的步骤,让我们更加专注业务本身。希望这篇文章能对你在接下来的工作中有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005626981e8991b448dfb2a