简介
graphcool-inquirer
是一款用于构建 GraphQL API 的命令行工具,它极大地简化了对 GraphQL API 架构的搭建和维护过程。graphcool-inquirer
可以帮助我们通过控制台或者交互式 CLI 的方式进行构建、修改、测试 GraphQL schema,它还支持生成 api 的代码,并且还支持 graphql-playground 可以方便地进行 GraphQL API 接口的调试。
安装
graphcool-inquirer
工具是基于 npm 包管理器构建的,因此在开始安装前,先确保在您的系统上已经安装了 Node.js 和 npm。
使用以下命令安装 graphcool-inquirer
:
npm install -g graphcool-inquirer
如何使用
graphcool-inquirer
提供了很多命令行工具集中 Graphcool API 开发所需要的一切。以下是一些最基本的命令,可以帮助您了解如何使用该工具:
1. 开始创建 API
通过以下命令从控制台创建一个新的 schema:
graphcool-inquirer init
这个命令将会询问您一些有关于新 API 的基本信息(如名称以及项目路径等),在到达构建期之前,您将需要回答这些问题,以确保您的新API 包含必要的配置选项。
2. 获取 API endpoint
通过以下命令可以获得 Graphcool API 的 endpoint:
graphcool-inquirer info
这个命令将会输出出你当前的 endpoint 或者打印一些相关的信息,包括 API 的名称、数据模型等等。
3. 修改 Schema
如果你想要修改 API 的 schema,请使用以下命令:
graphcool-inquirer modify
这个命令将进入编辑模式,提供一个自由操作和修改 schema 的机会。这将是非常有用的,当你需要添加或删除字段、重新定义类型或者列表等其他修改操作时。
4. 使用 Playground
graphcool-inquirer
自带一个非常棒的 graphql-playground 工具,它可以方便地进行 API 接口的调试。为了使用 GraphQL Playground,您需要输入以下命令:
graphcool-inquirer playground
这个命令将会启动一个服务器,你可以访问浏览器 http://localhost:6000 并且开始使用 Playground 进行调试。
5. 导出到 Graphcool 云
经过开发、修改、测试、调试之后,您的 API 已经准备好上线发布了。幸运的是,graphcool-inquirer
支持直接将API 导出到 Graphcool Cloud,这使得上线发布 API 变得非常简单和快速。
输入以下命令,将 API 导出到云上:
graphcool-inquirer deploy
然后您将需要提供 Graphcool 云账号的登录信息,该信息将用于验证您的帐户权限并安全地存储您的 API 数据。
附加功能
除了上面的基本功能之外, graphcool-inquirer
还有很多其他的工具和命令行参数,其中一些可以在完整的文档中找到。下面我们来介绍一些快捷功能,以帮助您进一步加速您的 GraphQL API 开发流程。
使用现成的 API 模型
您可能已经注意到,在初始化工具之后,graphcool-inquirer
生成了一个新的 API 模型。如果您想在 API 构建中使用现有的模型,您可以使用 --model
命令行参数,以下是一个使用现有模型的示例命令:
graphcool-inquirer init --model https://api.graph.cool/simple/v1/mymodel
自动生成代码
你可以使用以下命令生成程序所需要的 API 代码:
graphcool-inquirer generate
这个命令将自动生成一个 Graphql schema
的客户端和服务端代码。这使得您可以节省很多时间,在您的应用开发中更加专注于前端界面与体验,因为其他任务将由 Graphql 所处理。
结论
graphcool-inquirer
是一个快速而可靠的命令行工具,为开发者提供了一种快速搭建、修改、测试、部署 GraphQL API 的便利方式。它对于初学者或者有 GraphQL API 架构需求的开发者来说,特别是那些希望减少繁琐、重复且具体的编码工作的开发者非常有益。强大的交互式 CLI,友好的命令行参数,以及零编码的快速开发能力,都可以使您的前端开发体验更加愉快和高效。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600563eb81e8991b448e13d0