26 构建一个GraphQL API之部署与测试
在上一篇中,我们已经完成了构建基本的 GraphQL API 结构。现在,我们将进入这一系列教程的另一个重要部分:部署和测试我们的 GraphQL API。通过本文,你将学习到如何将你的 API 部署到云服务,并运用测试工具确保其稳定性和可用性。
部署 GraphQL API
选择部署平台
在部署 GraphQL API 之前,首先需要选择一个合适的云服务平台。常见的选择包括:
- Heroku
- AWS(Amazon Web Services)
- GCP(Google Cloud Platform)
- DigitalOcean
本教程将以 Heroku 为例,演示如何快速部署你的 GraphQL API。
在 Heroku 上部署
安装 Heroku CLI
如果你还没有安装 Heroku CLI,可以从 Heroku 官方网站 下载并安装。
登录 Heroku
打开终端并输入以下命令进行登录:
1
heroku login
创建 Heroku 应用
在你的项目根目录中,使用以下命令创建一个新的 Heroku 应用:
1
heroku create your-app-name
配置环境变量
如果你的 API 依赖于环境变量(例如数据库连接字符串),可以使用以下命令设置这些变量:
1
heroku config:set DATABASE_URL=your_database_url
构建并部署
确保你的项目包含一个
Procfile
,该文件定义了应用程序的入口点。例如,对于 Node.js 应用,可以这样设置:1
web: node index.js
然后,使用以下命令将代码推送到 Heroku:
1
2
3git add .
git commit -m "Deploying GraphQL API"
git push heroku master开启应用
部署完成后,可以使用以下命令启动你的应用:
1
heroku open
现在,你的 GraphQL API 已经成功部署并可以通过 Heroku 提供的 URL 访问。
测试 GraphQL API
在确保 API 成功部署之后,接下来的步骤是进行全面的测试。测试可以帮助我们发现潜在的bug,并确保 API 的稳定性和性能。
使用 Postman 进行手动测试
安装 Postman
如果还没有安装,可以从 Postman 官网 下载并安装。
创建新的请求
打开 Postman,选择
POST
方法并输入你的 GraphQL API URL,例如:1
https://your-app-name.herokuapp.com/graphql
设置请求头
在请求头中添加
Content-Type
:1
2Key: Content-Type
Value: application/json构造请求体
在请求体中输入你的 GraphQL 查询,例如:
1
2
3{
"query": "{ users { id name } }"
}发送请求并观察响应
点击 “Send” 按钮发送请求并检查返回的数据,以确保 API 正常工作。
使用 Jest 进行自动化测试
为了实现更高效的测试,建议编写自动化测试用例。我们将使用 Jest
来实现这一点。
安装 Jest
在你的项目中安装 Jest:
1
npm install --save-dev jest
编写测试代码
创建一个名为
test.js
的测试文件,输入如下内容:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15const request = require('supertest');
const app = require('./index'); // 引入你的应用
describe('GraphQL API', () => {
it('should fetch users', async () => {
const res = await request(app)
.post('/graphql')
.send({
query: '{ users { id name } }',
});
expect(res.statusCode).toEqual(200);
expect(res.body.data.users).toBeDefined();
});
});运行测试
在终端中运行以下命令来执行测试:
1
npx jest
测试通过后,你将看到相应的提示,这表明你的 GraphQL API 在正常工作。
小结
在本篇教程中,我们完成了 GraphQL API 的部署和测试。通过在 Heroku 上部署我们的 API,并使用 Postman 及 Jest 进行手动和自动化测试,我们确保了 API 的可用性和稳定性。下一篇将继续探索 GraphQL API 的性能优化与最佳实践。希望你跟着这个系列持续加油,提升你的 GraphQL API 开发技能!
26 构建一个GraphQL API之部署与测试