接口测试之代码实例21讲--附录2电商系统设计

本文以一个简化版的电商网站为例,详细介绍了包括登录、添加商品、商品列表、提交订单、获取用户订单和订单详情在内的6个接口的功能、权限、调用接口的业务逻辑。项目遵循前后端分离设计,提供了接口文档、数据库结构和系统配置及服务启动的说明,代码示例可在GitHub找到。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

专栏地址:https://www.nowcoder.com/tutorial/10032/index

1. 业务场景

我们以一个简化版的电商网站项目为例,其中涉及到6块功能,分别是登录、添加商品、商品列表、下订单、我的订单、订单详情,每个功能都有相应的权限限制,并且调用对应的接口来做相应的业务逻辑处理,完成后跳转到下一页面。具体页面/功能、权限、调用接口、动作及跳转的逻辑关系如下:

页面 权限 调用接口 动作及跳转
1登录 所有用户 login 点击【登录】->商品页
2添加商品 管理员权限 add_product
3商品列表 所有用户 get_product 点击【下单】->订单
4订单 订单所属用户 order 点击【支付】->我的订单
–支付 订单所属用户 mock –点击【支付完成】->我的订单
5我的订单 订单所属用户 user_orderid 点击【订单区域】->订单详情
6订单详情 订单所属用户 get_order

项目的设计遵循前后端完全分离的设计模式,前端可以是Web、iOS、Android、小程序各种类型的客户端,但后端接口都是一致的,因此我们用代码实现上述6个接口功能,然后开发Web网站调用接口的实现电商下单购买支付的流程,并列举两个其中比较典型的安全问题,项目示例代码参见GitHub:https://github.com/8784285/order_web.git 。

2. 接口文档

1) 登录

  • 接口url:http://127.0.0.1:5000/login
  • 接口方法:POST
  • 请求参数:
参数名 类型 是否必填 备注 示例
username string 字母数字_.组合,长度2-20 Mr.null
password string MD5加密,长度32
  • 请求示例:
{
	"username": "Mr.null",
	"password": "dc483e80a7a0bd9ef71d8cf973673924"
}
  • 返回结果:
参数名 类型 是否必需 备注 示例
code number 4:成功;2:失败 4
msg string 登录成功/非法用户 “登录成功”
token string
  • 返回示例:
{
  "code": 4,
  "msg": "登录成功",
  "token": "eyJhbGciOiJIUzUxMiIsImlhdCI6MTU5MTgzNzQ0MSwiZXhwIjoxNTkxOTIzODQxfQ.eyJ1c2VybmFtZSI6Ik1yLm51bGwiLCJwYXNzd29yZCI6ImRjNDgzZTgwYTdhMGJkOWVmNzFkOGNmOTczNjczOTI0In0.fJVi3MZXmEz9lue0gZUO0m_lG2I-8endYsGOP4FNCGZ9wdGpKDb-yDNGj9XCrRXtoIz0AGIh-v-_oPWeOSYspQ"
}

2) 添加商品

  • 接口url:http://127.0.0.1:5000/add_product
  • 接口方法:POST
  • 请求参数:
参数名 类型 是否必填 备注 示例
name string 字母数字_.组合,长度2-20 Mr.null
price number 保留两位小数 25.50
count count >0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值