# 使用 Postman 测试接口

URL: https://caijiao.org/fastify/demo/testing
Source: docs/fastify/demo/testing.md
Description: 本节将指导你使用 Postman 测试我们之前创建的 Fastify API 项目接口，包括 GET 和 POST 请求的测试方法。

在本节中，我们将使用 Postman 来测试我们之前构建的 [Fastify](/fastify/) API 接口。Postman 是一个非常流行的 API 测试工具，可以让你轻松发送 HTTP 请求，并查看响应。

## 1. 安装 Postman

首先，如果你还没有安装 Postman，可以从 [Postman 官网](https://www.postman.com/downloads/) 下载并安装它。

## 2. 启动 Fastify 服务器

确保你的 [Fastify](/fastify/) 服务器已经在运行。你可以通过以下命令启动服务器：

```bash
ts-node app.ts
```

服务器启动后，默认会监听在 `http://localhost:3000`。

## 3. 测试 GET 请求

我们已经在 Fastify 中定义了一个简单的 GET 路由，可以返回一个欢迎消息和一个用户列表。接下来，我们将使用 Postman 来测试这些接口。

### 测试根路由

1. 打开 Postman。
2. 在 Postman 中选择 **GET** 请求方法。
3. 在地址栏中输入 `http://localhost:3000/`。
4. 点击 **Send** 按钮。

你应该看到如下响应：

```json
{
  "message": "Welcome to the Fastify API"
}
```

### 测试获取用户列表

1. 在 Postman 中，选择 **GET** 请求方法。
2. 在地址栏中输入 `http://localhost:3000/users`。
3. 点击 **Send** 按钮。

你应该看到如下响应：

```json
[
  { "id": 1, "name": "John Doe" },
  { "id": 2, "name": "Jane Smith" }
]
```

### 测试获取单个用户

1. 在 Postman 中，选择 **GET** 请求方法。
2. 在地址栏中输入 `http://localhost:3000/users/1`（获取 ID 为 1 的用户）。
3. 点击 **Send** 按钮。

你应该看到如下响应：

```json
{
  "id": 1,
  "name": "John Doe"
}
```

如果你输入一个不存在的用户 ID，如 `http://localhost:3000/users/3`，你将收到 `404` 错误响应：

```json
{
  "error": "User not found"
}
```

## 4. 测试 POST 请求

现在我们测试添加新用户的 POST 路由。这个路由会接收一个包含用户姓名的请求体，并返回创建的用户信息。

### 测试创建用户

1. 在 Postman 中，选择 **POST** 请求方法。
2. 在地址栏中输入 `http://localhost:3000/users`。
3. 在 **Body** 标签下，选择 **raw** 并设置内容类型为 **JSON**。
4. 在请求体中输入以下内容：

```json
{
  "name": "Alice"
}
```

5. 点击 **Send** 按钮。

你应该看到如下响应，表示用户已成功创建：

```json
{
  "id": 1630424343235,
  "name": "Alice"
}
```

### 测试创建用户时没有提供姓名

如果你没有提供 `name` 字段，API 将返回 `400` 错误。我们来测试这种情况：

1. 在 Postman 中，选择 **POST** 请求方法。
2. 在地址栏中输入 `http://localhost:3000/users`。
3. 在 **Body** 标签下，选择 **raw** 并设置内容类型为 **JSON**。
4. 将请求体修改为：

```json
{}
```

5. 点击 **Send** 按钮。

你应该看到如下响应：

```json
{
  "error": "Name is required"
}
```

### 错误处理测试

当发生其他错误时，Fastify 会返回 `500` 错误。你可以通过模拟错误或使用 Postman 调用不存在的路由来触发错误。错误响应将是：

```json
{
  "error": "Internal Server Error"
}
```

## 5. 总结

使用 Postman 测试 Fastify API 项目非常简单。在本节中，我们测试了 GET 请求来获取用户数据，POST 请求来创建新用户，并处理了错误场景。通过这些操作，你可以确保 API 的功能正常，并且能够处理不同类型的请求。
