十、商城站点API调用示例

    我们先分析一下商城站点有哪些页面,再拆解每一个页面所需要的接口。

    10.1 商城站点页面结构分析

    典型的商城站点通常包含以下页面:

    10.1.1 主要页面类型

    • 首页 - 展示最新商品、热门商品、推荐商品、促销活动等
    • 商品分类页 - 按分类展示商品列表
    • 商品详情页 - 展示单个商品的详细信息
    • 购物车页 - 用户选购商品的购物车页面
    • 订单确认页 - 确认订单信息的页面
    • 订单支付页 - 完成订单支付的页面
    • 个人中心页 - 用户个人信息和订单管理
    • 订单详情页 - 查看单个订单的详细信息
    • 我的订单页 - 用户订单列表
    • 收货地址页 - 管理用户收货地址
    • 商品搜索页 - 搜索商品结果页面
    • 促销活动页 - 优惠券、秒杀等促销活动页面
    • 用户相关页面 - 登录、注册、个人中心等

    10.2 各页面所需API接口详解

    10.2.1 首页

    商城首页是最重要的页面,通常包含多种内容展示。

    主要接口调用:

    1. 获取商品列表 (/api/archive/list)

      {
      "moduleId": 2, // 商品模块ID
       "limit": 10,
       "page": 1,
       "order": "created_time desc"
      }
      
      • 用途:获取最新商品列表
      • 参数:moduleId=2(商品模块ID是2)、limit(每页数量)、page(页码)、order(排序方式)
    2. 获取推荐商品 (/api/archive/list)

      {
      "moduleId": 2, // 商品模块ID
       "flag": "c",  // 推荐商品
       "limit": 5
      }
      
      • 用途:获取推荐商品列表
      • 参数:flag(推荐标识)、limit(数量)
    3. 获取热门商品 (/api/archive/list)

      {
      "moduleId": 2, // 商品模块ID
       "order": "views desc",
       "limit": 5
      }
      
      • 用途:获取点击量最高的商品
      • 参数:order(按浏览量排序)、limit(数量)
    4. 获取商品分类列表 (/api/category/list)

      {
      "moduleId": 2, // 商品模块ID
       "limit": 10
      }
      
      • 用途:获取所有商品分类,用于导航菜单
    5. 获取商品标签列表 (/api/tag/list)

      {
       "type": "list",
       "limit": 20
      }
      
      • 用途:获取热门标签,用于标签云
    6. 获取系统设置 (/api/setting/system)

      • 用途:获取商城标题、描述、关键词等基础信息
    7. 获取首页设置 (/api/setting/index)

      • 用途:获取首页特定配置信息
    8. 获取导航列表 (/api/nav/list)

      • 用途:获取网站导航菜单
    9. 获取Banner列表 (/api/banner/list)

      • 用途:获取首页轮播图
    10. 获取促销活动信息 (/api/setting/system)

      • 用途:获取促销活动配置信息
    11. 获取优惠券列表 (/api/coupon/codes)

      {
        "limit": 5
      }
      
      • 用途:获取可用的优惠券列表

    10.2.2 商品分类页面

    商品分类页面展示特定分类下的商品列表。

    主要接口调用:

    1. 获取分类详情 (/api/category/detail)

      {
       "id": 1
      }
      
      • 用途:获取当前分类信息
      • 参数:id(分类ID) 或 filename(分类别名)
    2. 获取分类下商品列表 (/api/archive/list)

      {
      "moduleId": 2, // 商品模块ID
       "categoryId": 1,
       "limit": 10,
       "page": 1
      }
      
      • 用途:获取该分类下的商品列表
      • 参数:categoryId(分类ID)、limit(每页数量)、page(页码)
    3. 获取子分类列表 (/api/category/list)

      {
       "parentId": 1,
       "limit": 10
      }
      
      • 用途:获取当前分类的子分类
      • 参数:parentId(父分类ID)
    4. 获取系统设置 (/api/setting/system)

      • 用途:获取网站基础信息
    5. 获取商品分类列表 (/api/category/list)

      • 用途:获取所有分类,用于侧边栏导航
    6. 获取筛选条件 (/api/archive/list)

      {
      "moduleId": 2, // 商品模块ID
       "categoryId": 1,
       "type": "filter"
      }
      
      • 用途:获取当前分类下的筛选条件

    10.2.3 商品详情页面

    商品详情页面展示单个商品的完整信息。

    主要接口调用:

    1. 获取商品详情 (/api/archive/detail)

      {
       "id": 1
      }
      
      • 用途:获取商品详细内容
      • 参数:id(商品ID) 或 filename(商品别名)
    2. 获取商品参数 (/api/archive/params)

      {
       "id": 1,
       "sorted": true
      }
      
      • 用途:获取商品自定义参数
      • 参数:id(商品ID)、sorted(返回格式)
    3. 获取商品SKU信息 (/api/archive/sku)

      {
       "id": 1
      }
      
      • 用途:获取商品SKU规格信息
      • 参数:id(商品ID)
    4. 获取上一个商品 (/api/archive/prev)

      {
       "id": 1
      }
      
      • 用途:获取上一个商品信息
    5. 获取下一个商品 (/api/archive/next)

      {
       "id": 1
      }
      
      • 用途:获取下一个商品信息
    6. 获取相关商品 (/api/archive/list)

      {
       "type": "related",
       "limit": 5,
       "id": 1
      }
      
      • 用途:获取同分类的其他商品
      • 参数:type=“related”(相关商品类型)、limit(数量)、id(当前商品)
    7. 获取商品评论列表 (/api/comment/list)

      {
       "archive_id": 1,
       "limit": 10,
       "page": 1
      }
      
      • 用途:获取商品评论列表
      • 参数:archive_id(商品ID)、limit(每页数量)、page(页码)
    8. 检查收藏状态 (/api/favorite/check)

      {
       "archive_id": 1
      }
      
      • 用途:检查当前用户是否收藏了该商品
      • 需要认证
    9. 获取系统设置 (/api/setting/system)

      • 用途:获取网站基础信息
    10. 获取购物车商品数量 (/api/cart/list)

      • 用途:获取当前用户购物车中的商品数量
      • 需要认证

    10.2.4 购物车页面

    购物车页面展示用户已选择的商品。

    主要接口调用:

    1. 获取购物车列表 (/api/cart/list)

      • 用途:获取当前用户的购物车商品列表
      • 需要认证
    2. 更新购物车商品数量 (/api/cart/update)

      {
       "id": 1,
       "quantity": 2
      }
      
      • 用途:更新购物车中某个商品的数量
      • 参数:id(购物车项目ID)、quantity(数量)
      • 需要认证
    3. 从购物车移除商品 (/api/cart/remove)

      {
       "id": 1
      }
      
      • 用途:从购物车中移除某个商品
      • 参数:id(购物车项目ID)
      • 需要认证
    4. 获取系统设置 (/api/setting/system)

      • 用途:获取网站基础信息
    5. 获取优惠券列表 (/api/coupon/codes)

      • 用途:获取可用的优惠券列表
      • 需要认证

    10.2.5 订单确认页面

    订单确认页面用于确认订单信息。

    主要接口调用:

    1. 获取购物车列表 (/api/cart/list)

      • 用途:获取当前用户的购物车商品列表
      • 需要认证
    2. 获取收货地址列表 (/api/order/addresses)

      • 用途:获取用户的收货地址列表
      • 需要认证
    3. 获取默认收货地址 (/api/order/address)

      • 用途:获取用户的默认收货地址
      • 需要认证
    4. 获取商品结算信息 (/api/orders/checkout)

      {
       "cart_ids": [1, 2, 3]
      }
      
      • 用途:获取商品结算信息(价格、运费等)
      • 参数:cart_ids(购物车项目ID列表)
      • 需要认证
    5. 获取优惠券列表 (/api/coupon/codes)

      • 用途:获取可用的优惠券列表
      • 需要认证
    6. 获取系统设置 (/api/setting/system)

      • 用途:获取网站基础信息

    10.2.6 订单支付页面

    订单支付页面用于完成订单支付。

    主要接口调用:

    1. 创建订单 (/api/order/create)

      {
       "address_id": 1,
       "coupon_id": 2,
       "remark": "订单备注",
       "cart_ids": [1, 2, 3]
      }
      
      • 用途:创建新订单
      • 参数:address_id(收货地址ID)、coupon_id(优惠券ID)、remark(备注)、cart_ids(购物车项目ID列表)
      • 需要认证
    2. 获取订单详情 (/api/order/detail)

      {
       "order_id": "202211232209080046"
      }
      
      • 用途:获取订单详情
      • 参数:order_id(订单ID)
      • 需要认证
    3. 订单支付 (/api/order/payment)

      {
       "order_id": "202211232209080046",
       "pay_way": "alipay"
      }
      
      • 用途:发起订单支付
      • 参数:id(订单ID)、payment_method(支付方式)
      • 需要认证
    4. 获取系统设置 (/api/setting/system)

      • 用途:获取网站基础信息

    10.2.7 个人中心页面

    个人中心页面展示用户个人信息和订单管理。

    主要接口调用:

    1. 获取用户详情 (/api/user/detail)

      • 用途:获取当前用户详细信息
      • 需要认证
    2. 获取用户订单列表 (/api/orders)

      {
       "limit": 5,
       "page": 1
      }
      
      • 用途:获取用户订单列表
      • 参数:limit(每页数量)、page(页码)
      • 需要认证
    3. 获取用户收藏列表 (/api/favorite/list)

      {
       "limit": 5,
       "page": 1
      }
      
      • 用途:获取用户收藏的商品列表
      • 参数:limit(每页数量)、page(页码)
      • 需要认证
    4. 获取用户愿望清单 (/api/wishlist)

      • 用途:获取用户愿望清单
      • 需要认证
    5. 获取用户收货地址列表 (/api/order/addresses)

      • 用途:获取用户收货地址列表
      • 需要认证
    6. 获取用户评论列表 (/api/comment/list)

      {
       "user_id": 1,
       "limit": 5,
       "page": 1
      }
      
      • 用途:获取用户发表的评论
      • 参数:user_id(用户ID)、limit(每页数量)、page(页码)
      • 需要认证
    7. 获取系统设置 (/api/setting/system)

      • 用途:获取网站基础信息

    10.2.8 订单详情页面

    订单详情页面展示单个订单的详细信息。

    主要接口调用:

    1. 获取订单详情 (/api/order/detail)

      {
       "order_id": "202211232209080046"
      }
      
      • 用途:获取订单详细信息
      • 参数:order_id(订单ID)
      • 需要认证
    2. 获取系统设置 (/api/setting/system)

      • 用途:获取网站基础信息
    3. 获取订单评价 (/api/review/list)

      {
       "order_id": "202211232209080046"
      }
      
      • 用途:获取订单商品的评价
      • 参数:order_id(订单ID)
      • 需要认证

    10.2.9 我的订单页面

    我的订单页面展示用户的所有订单。

    主要接口调用:

    1. 获取用户订单列表 (/api/orders)

      {
       "limit": 10,
       "page": 1,
       "status": "paid"
      }
      
      • 用途:获取用户订单列表
      • 参数:limit(每页数量)、page(页码)、status(订单状态)
      • 需要认证
    2. 取消订单 (/api/order/cancel)

      {
       "order_id": "202211232209080046"
      }
      
      • 用途:取消订单
      • 参数:order_id(订单ID)
      • 需要认证
    3. 完成订单 (/api/order/finished)

      {
       "order_id": "202211232209080046"
      }
      
      • 用途:完成订单
      • 参数:order_id(订单ID)
      • 需要认证
    4. 获取系统设置 (/api/setting/system)

      • 用途:获取网站基础信息

    10.2.10 收货地址页面

    收货地址页面用于管理用户的收货地址。

    主要接口调用:

    1. 获取收货地址列表 (/api/order/addresses)

      • 用途:获取用户收货地址列表
      • 需要认证
    2. 保存收货地址 (/api/order/address)

      {
       "name": "收货人姓名",
       "phone": "收货人电话",
       "province": "省份",
       "city": "城市",
       "country": "区域",
       "address": "详细地址",
       "is_default": 1
      }
      
      • 用途:保存收货地址
      • 参数:name(姓名)、phone(电话)、province(省份)、city(城市)、country(区域)、address(详细地址)、is_default(是否默认)
      • 需要认证
    3. 获取系统设置 (/api/setting/system)

      • 用途:获取网站基础信息

    10.2.11 商品搜索页面

    商品搜索页面展示搜索关键词相关的商品。

    主要接口调用:

    1. 搜索商品列表 (/api/archive/list)

      {
       "moduleId": 2, // 商品模块ID
       "q": "关键词",
       "limit": 10,
       "page": 1
      }
      
      • 用途:搜索包含关键词的商品
      • 参数:q(搜索关键词)、limit(每页数量)、page(页码)
    2. 获取热门搜索 (/api/archive/list)

      {
       "moduleId": 2, // 商品模块ID
       "order": "views desc",
       "limit": 10
      }
      
      • 用途:获取热门搜索内容
    3. 获取搜索建议 (/api/archive/list)

      {
       "moduleId": 2, // 商品模块ID
       "q": "关键词前缀",
       "limit": 5
      }
      
      • 用途:获取搜索建议
    4. 获取系统设置 (/api/setting/system)

      • 用途:获取网站基础信息

    10.2.12 促销活动页面

    促销活动页面展示优惠券、秒杀等促销活动。

    主要接口调用:

    1. 获取优惠券列表 (/api/coupon/codes)

      {
       "limit": 10,
       "page": 1
      }
      
      • 用途:获取优惠券列表
      • 参数:limit(每页数量)、page(页码)
    2. 获取有效优惠券列表 (/api/coupon/valid)

      • 用途:获取当前有效的优惠券列表
    3. 获取优惠券码 (/api/coupon/code)

      {
       "id": 1
      }
      
      • 用途:获取优惠券码
      • 参数:id(优惠券ID)
      • 需要认证
    4. 获取限时秒杀商品 (/api/archive/list)

      {
       "moduleId": 2, // 商品模块ID
       "flag": "s",  // 秒杀标识
       "limit": 10,
       "page": 1
      }
      
      • 用途:获取秒杀商品列表
    5. 获取系统设置 (/api/setting/system)

      • 用途:获取网站基础信息

    10.2.13 用户相关页面

    10.2.13.1 登录页面

    主要接口调用:

    1. 用户登录 (/api/login)
      
      {
       "user_name": "用户名",
       "password": "密码"
      }
      
      • 用途:用户登录认证
      • 参数:user_name(用户名)、password(密码)、email(邮箱)、phone(手机号)
    10.2.13.2 注册页面

    主要接口调用:

    1. 用户注册 (/api/register)

      {
       "user_name": "用户名",
       "password": "密码",
       "email": "邮箱",
       "captcha_id": "验证码ID",
       "captcha": "验证码"
      }
      
      • 用途:新用户注册
      • 参数:user_name(用户名)、password(密码)、email(邮箱)、captcha(验证码)
    2. 获取验证码 (/api/captcha)

      • 用途:获取图形验证码
    3. 发送邮箱验证 (/api/verify/email)

      {
       "email": "邮箱地址"
      }
      
      • 用途:发送邮箱验证码
    10.2.13.3 个人中心页面

    主要接口调用:

    1. 获取用户详情 (/api/user/detail)

      • 用途:获取当前用户详细信息
      • 需要认证
    2. 更新用户信息 (/api/user/update)

      {
       "real_name": "真实姓名",
       "email": "邮箱"
      }
      
      • 用途:更新用户信息
      • 需要认证
    3. 更新用户头像 (/api/user/avatar)

      • 用途:更新用户头像
      • 需要认证
    4. 更新用户密码 (/api/user/password)

      {
       "old_password": "旧密码",
       "password": "新密码"
      }
      
      • 用途:更新用户密码
      • 需要认证
    5. 重置用户密码 (/api/user/password/reset)

      {
       "email": "邮箱",
       "password": "新密码",
       "token": "验证token",
       "code": "验证码"
      }
      
      • 用途:重置用户密码

    10.3 页面加载流程示例

    以商品详情页为例,说明完整的API调用流程:

    10.3.1 页面初始化

    1. 获取商品详情
    2. 增加商品浏览量(通过后续请求或服务端处理)
    3. 获取商品SKU信息

    10.3.2 侧边栏内容加载

    1. 获取上一个/下一个商品
    2. 获取相关商品推荐
    3. 获取热门商品列表

    10.3.3 评论区域加载

    1. 获取商品评论列表
    2. 如果用户已登录,获取用户对当前商品的收藏状态

    10.3.4 购物车功能

    1. 获取购物车商品数量(如果用户已登录)
    2. 添加到购物车(需要认证)

    10.3.5 交互功能

    1. 发布评论(需要认证)
    2. 收藏/取消收藏(需要认证)
    3. 评论点赞(需要认证)

    10.4 常见页面组合调用

    10.4.1 首页 + 分类页组合

    // 并行请求多个接口
    Promise.all([
      fetch('/api/archive/list', { params: { moduleId: 2, limit: 10, page: 1 } }),
      fetch('/api/category/list', { params: { moduleId: 2, limit: 10 } }),
      fetch('/api/tag/list', { params: { type: 'list', limit: 20 } }),
      fetch('/api/setting/system'),
      fetch('/api/coupon/codes', { params: { limit: 5 } })
    ]).then(responses => {
      // 处理所有响应数据
      const [products, categories, tags, settings, coupons] = responses;
      // 渲染页面
    });
    

    10.4.2 商品详情页完整调用

    // 串行或并行调用多个接口
    const productId = 1;
    Promise.all([
      fetch(`/api/archive/detail`, { params: { id: productId } }),
      fetch(`/api/archive/params`, { params: { id: productId } }),
      fetch(`/api/archive/sku`, { params: { id: productId } }),
      fetch(`/api/archive/prev`, { params: { id: productId } }),
      fetch(`/api/archive/next`, { params: { id: productId } }),
      fetch(`/api/comment/list`, { params: { archive_id: productId, limit: 10 } }),
      fetch(`/api/setting/system`)
    ]).then(responses => {
      const [product, params, sku, prev, next, comments, settings] = responses;
      // 组合数据并渲染页面
    });
    

    10.4.3 订单确认页完整调用

    // 订单确认页面的API调用
    const cartIds = [1, 2, 3];
    Promise.all([
      fetch('/api/cart/list'),
      fetch('/api/order/addresses'),
      fetch('/api/orders/checkout', { params: { cart_ids: cartIds } }),
      fetch('/api/coupon/codes'),
      fetch('/api/setting/system')
    ]).then(responses => {
      const [cart, addresses, checkout, coupons, settings] = responses;
      // 组合数据并渲染页面
    });
    

    可以看出一个完整的商城站点需要调用多个API接口来构建各个页面,开发者可以根据实际需求选择合适的接口组合,实现丰富的商城功能。

    结语

    通过本指南,您可以系统地了解和使用 AnQiCMS API,从基础概念到高级用法,逐步掌握接口的使用方法。建议按照指南的顺序逐步学习,并结合实际项目进行练习。