当前位置: 首页 > article >正文

Postman接口测试工具

Postman

Postman 是一款强大的 API 开发和测试工具,它能够帮助开发人员和测试人员高效地与各种 API 进行交互、发送请求并分析响应。

API测试:在编写Java代码之前,可以先使用Postman构建和测试API请求,确保API端点的正确性;测试不同类型的HTTP请求(GET, POST, PUT, DELETE等)和参数;检查API的响应状态码、响应头和响应体。

模拟客户端:模拟客户端发送请求到Java后端服务,帮助开发者在不编写前端代码的情况下测试后端逻辑。

下载地址:https://www.postman.com/downloads/

在这里插入图片描述

客户端与服务器之间几种不同的参数传递方式

  1. 查询字符串(Query String)
    • 通过URL中的?符号传递参数,参数以key=value的形式出现,多个参数之间用&连接。
    • 例如:http://example.com/api/data?id=123&name=John
    • 在Postman中,可以在Params部分添加查询字符串参数。
  2. 请求体(Request Body)
    • 在发送POST、PUT、PATCH等请求时,可以在请求体中传递参数。
    • 参数可以以多种格式发送,常见的有:
      • JSON格式:{"id": 123, "name": "John"}
      • XML格式:<data><id>123</id><name>John</name></data>
      • 表单数据(application/x-www-form-urlencoded):id=123&name=John
      • 表单数据(multipart/form-data):用于上传文件等二进制数据。
    • Postman支持多种请求体格式,包括:
      • raw(可以发送JSON、XML、Text等格式的数据)
      • form-data(用于发送表单数据,包括文件上传)
      • x-www-form-urlencoded(用于发送URL编码的表单数据)
      • binary(用于发送二进制文件)
  3. 路由参数(Route Parameters)
    • 在RESTful风格的API中,参数可以作为URL的一部分传递。
    • 例如:http://example.com/api/data/123,其中123是参数,通常用于表示资源的ID。
    • 在Postman的URL中,可以直接将参数作为URL的一部分,例如http://example.com/api/data/{param},然后在“Params”或“Pre-request Script”中为这些参数提供值。
  4. 请求头(Request Headers)
    • 请求头可以用来传递一些元数据,如认证令牌(Token)、内容类型(Content-Type)等。
    • 例如:Authorization: Bearer <token>
  5. Cookie
    • Cookie通常用于存储用户会话信息,可以在请求中自动发送到服务器。
    • 例如:Cookie: name=John; sessionid=abc123

使用场景实例

根据商品分类ID(categoryId) 和 搜索关键字(query) 查询商品

在这里插入图片描述
实体类定义如下

@Data
@TableName("product")
public class Product implements Serializable {
  @TableId(value = "id", type = IdType.AUTO)
  private Integer id; // 商品 ID
  private String name; // 商品名称
  private String description; // 商品描述
  private double price; // 商品价格
  private double price2; // 商品原价格
  private Integer stock; // 商品库存
  private Integer sales; // 商品销量
  private String imageUrl; // 商品主图 URL
  private Integer categoryId; // 商品分类 ID
  private String createdAt; // 创建时间
  private String updatedAt; // 更新时间
}

这里使用 MybatisPlus,注意开启驼峰映射,让 MyBatis-Plus 自动处理数据库字段名与 Java 实体类属性名之间的映射关系。

mybatis-plus:
  configuration:
    map-underscore-to-camel-case: true # 开启驼峰映射

将数据库中的下划线命名 image_url 转换为 Java 对象的驼峰命名 imageUrl

其余核心代码如下:

// 数据持久层 ProductMapper 
public interface ProductMapper extends BaseMapper<Product> {}

// 业务层 ProductService 相关方法
public interface ProductService extends IService<Product> {
	public List<Product> searchProducts(Integer categoryId,String keyword);
}

// Service 实现类相关方法
public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product>
        implements ProductService {
    @Resource
    private ProductMapper productMapper;
    @Override
    public List<Product> searchProducts(Integer categoryId,String keyword) {
        QueryWrapper<Product> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("category_id", categoryId);
        queryWrapper.like("name", keyword);
        return productMapper.selectList(queryWrapper);
    }
}

categoryId = 2query = 游戏 举例

路由参数传递

@RestController
@RequestMapping("/test")
@CrossOrigin // 跨域请求
public class TestController {
    @Resource
    private ProductService productService;
    @GetMapping("/search1/{categoryId}/{query}")
    public ResultJSON searchProducts1(
            @PathVariable Integer categoryId
            , @PathVariable String query) {
        List<Product> products = productService.searchProducts(categoryId,query);
        return ResultJSON.success(products);
    }
}
GET http://localhost:8080/test/search1/2/游戏

在这里插入图片描述

简单参数传递

@GetMapping("/search2")
public ResultJSON searchProducts2(Integer categoryId, String query) {
    List<Product> products = productService.searchProducts(categoryId,query);
    return ResultJSON.success(products);
}
GET http://localhost:8080/test/search2?categoryId=2&query=游戏

在这里插入图片描述

@RequestParam 设置参数别名和参数是否必须

表单参数传递

@PostMapping("/search22")
public ResultJSON searchProducts22(Integer categoryId, String query) {
    List<Product> products = productService.searchProducts(categoryId,query);
    return ResultJSON.success(products);
}
POST http://localhost:8080/test/search22

categoryId 2
query 游戏

在这里插入图片描述

实体对象传递

@Data
public class SearchPro {
    private Integer categoryId;
    private String query;
}
@PostMapping("/search3")
public ResultJSON searchProducts3(@RequestBody SearchPro pro) {
    List<Product> products = productService.searchProducts(pro.getCategoryId(),pro.getQuery());
    return ResultJSON.success(products);
}

在这里插入图片描述

POST http://localhost:8080/test/search3
Content-Type   ===   application/json

Content-Type 头部设置为 application/json 以指示发送的是 JSON 格式数据

{
    "categoryId": 2,
    "query": "游戏"
}

在这里插入图片描述

使用 @RequestBody 注解来接收 JSON 数据。


http://www.kler.cn/a/456413.html

相关文章:

  • vue3使用video-player实现视频播放(可拖动视频窗口、调整大小)
  • 解决k8s部署dashboard时一直处于Pending状态的问题
  • SQL中的TRIM用法
  • 其它结构型模式
  • 远程服务器没办法显示图片
  • Python大数据可视化:基于python大数据的电脑硬件推荐系统_flask+Hadoop+spider
  • 【详细讲解】hive优化
  • Android 13 Aosp SystemUI Android Studio版本
  • 25页PDF | 企业级指标体系设计方法
  • 大学课程Go语言的算法与数据结构
  • Windows安装ElasticSearch与kibana
  • Ardunio BLE keyboard 库的使用
  • 变长的时间戳(第4版)
  • Spring Boot 项目中 Maven 剔除无用 Jar 引用的最佳实践
  • LabVIEW Ctrl+Shift space 快速放置被占用解决办法
  • 三层交换机配置
  • 【UE5.3.2 】引擎中安装RiderLink插件
  • 将现有Web 网页封装为macOS应用
  • TCP 小队列的设计原理
  • Python学习_集合
  • 什么是数据库的锁?怎么实现?
  • 【教程】如何编译指定版本Spark
  • [Hive]七 Hive 内核
  • Kotlin 协程基础知识总结三 —— 协程上下文与异常处理
  • AutoFOX:一种冠状动脉X线造影与OCT的自动化跨模态3D融合框架|文献速递-视觉大模型医疗图像应用
  • IDEA 搭建 SpringBoot 项目之配置 Maven