0


API接口测试(postman、node.js)

前置条件

    Postman测试工具

    Node环境

    Visual Studio Code代码编辑器

说明:在自己练习postman接口测试的时候没有资源,想要通过Node搭建环境,体会整个流程


步骤1:创建Node.js项目

1.在VSCode中,创建新的文件夹,在这里我们命名为:my-api

2.在VSCode中,打开刚才新建创建文件夹的终端


步骤 2: 安装所需的Node.js依赖

1.对项目进行初始化

//-y选项会自动跳过所有提示,使用默认设置
npm init -y

2.安装Express框架,用于创建服务器

npm install express

3.安装body-parser,用于解析请求体

npm install body-parser

3.安装jsonwebtoken,用于生成和验证JWT

npm install jsonwebtoken

步骤3:创建项目文件

在你的项目目录中创建一个名为server.js的文件,代码如下:

server.js

// 引入 Express 框架,用于构建 Web 服务器和处理 HTTP 请求  
const express = require('express');  
  
// 引入 body-parser 中间件,用于解析 HTTP 请求体中的 JSON 数据  
const bodyParser = require('body-parser');  
  
// 引入 jsonwebtoken 库,用于生成和验证 JSON Web Tokens (JWT)  
const jwt = require('jsonwebtoken');  
  
// 引入 bcrypt 库,用于密码的哈希和比较  
const bcrypt = require('bcrypt');  
  
// 创建一个 Express 应用实例  
const app = express();  
  
// 使用 body-parser 中间件来解析 JSON 格式的请求体  
app.use(bodyParser.json());  
  
// 定义一个 POST 路由 '/register',用于处理用户注册请求  
app.post('/register', async (req, res) => {  
  try {  
    // 从请求体中解构出用户名和密码  
    const { username, password } = req.body;  
      
    // 使用 bcrypt 库对用户密码进行哈希处理  
    const hashedPassword = await bcrypt.hash(password, 10);  
      
    // 存储用户信息到数据库(这里只是示例,没有实际调用数据库)  
    // 假设存储成功  
    res.status(201).json({ message: 'User registered successfully' });  
  } catch (error) {  
    // 如果发生错误,返回 500 状态码和错误消息  
    res.status(500).json({ message: 'An error occurred during registration' });  
  }  
});  
  
// 定义一个 POST 路由 '/login',用于处理用户登录请求  
app.post('/login', async (req, res) => {  
  try {  
    // 从请求体中解构出用户名和密码  
    const { username, password } = req.body;  
      
    // 验证用户信息(这里只是示例,没有实际调用数据库)  
    // 假设验证成功  
    const user = { id: 1, username: 'exampleUser' };  
      
    // 使用 jwt 库生成一个包含用户信息的 JWT  
    const token = jwt.sign({ user }, 'secretKey', { expiresIn: '1h' });  
      
    // 返回 JWT 给客户端  
    res.status(200).json({ token });  
  } catch (error) {  
    // 如果验证失败或发生其他错误,返回 401 状态码和错误消息  
    res.status(401).json({ message: 'Invalid credentials' });  
  }  
});  
  
// 定义一个 POST 路由 '/update-password',用于处理修改密码请求  
app.post('/update-password', authenticate, async (req, res) => {  
  try {  
    // 从请求体中解构出用户名和新密码  
    const { username, newPassword } = req.body;  
      
    // 使用 bcrypt 库对新密码进行哈希处理  
    const hashedPassword = await bcrypt.hash(newPassword, 10);  
      
    // 更新密码(这里只是示例,没有实际调用数据库)  
    // 假设更新成功  
    res.status(200).json({ message: 'Password updated successfully' });  
  } catch (error) {  
    // 如果更新密码时发生错误,返回 500 状态码和错误消息  
    res.status(500).json({ message: 'An error occurred during password update' });  
  }  
});  
  
// 定义一个认证中间件函数 authenticate  
function authenticate(req, res, next) {  
  // 从请求头中获取 JWT  
  const token = req.headers.authorization;  
    
  try {  
    // 使用 jwt 库验证 JWT  
    const payload = jwt.verify(token, 'secretKey');  
      
    // 将验证后的用户信息附加到请求对象上,供后续路由使用  
    req.user = payload.user;  
      
    // 调用 next() 函数,将请求传递给下一个中间件或路由处理器  
    next();  
  } catch (error) {  
    // 如果 JWT 验证失败,返回 401 状态码和错误消息  
    res.status(401).json({ message: 'Unauthorized' });  
  }  
}  
  
// 启动服务器并监听指定的端口  
const PORT = process.env.PORT || 3000;  
app.listen(PORT, () => {  
  // 当服务器成功启动后,在控制台输出服务器运行的端口信息  
  console.log(`Server is running on port ${PORT}`);  
});

步骤4:启动服务器

1.在控制台启动server.js

node server.js

2.通过链接地址去浏览器查看以确保开启成功:http://localhost:3000/register


步骤5:使用Postman测试API

一、注册路由测试

1.打开Postman,创建一个新的HTTP POST请求

2.设置请求的URL为你的服务地址加上/register路径:http://localhost:3000/register

3.设置请求体为JSON格式,包含用户名和密码:

{
      "username": "newUser",
      "password": "password123"
}

4.选择Send按钮发送请求。如果注册成功,你应该看到一个状态码为201的响应和一个成功消息


二、登录路由测试

1.创建一个新的HTTP POST请求

2.设置URL为http://localhost:3000/login

3.请求体应该是JSON格式,包含用户名和密码:

{
  "username": "newUser",
  "password": "password123"
}

4.发送请求后,如果登录成功,你应该会收到一个状态码为200的响应,包含一个JWT token


三、修改密码路由测试

为了测试修改密码的功能,需要先登录以获取一个有效的JWT token。使用上面的登录请求登录,然后保存返回的token。

1.创建一个新的HTTP POST请求

2.设置URL为http://localhost:3000/update-password

3.在请求头中添加一个Authorization字段,值为Bearer后跟你的JWT token

4.请求体应该是JSON格式,包含用户名和新密码:

{
  "username": "newUser",
  "newPassword": "newPassword123"
}

发送请求后,如果密码更新成功,你应该会收到一个状态码为200的响应和一个成功消息。


注意

在实际的生产环境中,需要将'secretKey'替换为一个安全的密钥,并确保它在服务器和客户端都是保密的。
 为了安全起见,应该使用HTTPS来保护客户端和服务器之间的通信。
 在注册和登录时,应该添加更多的验证和错误处理逻辑,以确保输入的有效性和安全性。
 在修改密码的请求中,应该验证新密码和确认密码是否匹配。

这些步骤应该可以帮助你在Postman中测试你的Node.js API。如果你遇到任何问题,可以根据错误消息进行调试。


本文转载自: https://blog.csdn.net/2301_81233281/article/details/136356859
版权归原作者 GIR-190 所有, 如有侵权,请联系我们删除。

“API接口测试(postman、node.js)”的评论:

还没有评论