微服务架构实战项目的功能演示

本节将统一使用服务网关中的 Swagger 接口文档工具进行演示。

读者在测试时需要根据功能在商城端网关 Swagger 中和后台管理系统端网关 Swagger 中分别测试。因为二者的用户体系和身份验证不同,所以通过商城端网关调用后台管理系统端的接口时会报错 “无权限”,反之,通过后台管理系统端网关调用商城端的接口时也会报错 “无权限”。比如,在商城端网关服务的 Swagger 接口文档工具中调用修改商品信息接口或添加轮播图接口,无法正常调用;在后台管理系统端网关服务的 Swagger 接口文档工具中调用购物车列表接口或生成订单接口,也是无法正常调用的。

商城用户的注册与登录功能演示

用户的注册与登录功能演示主要涉及用户注册接口和登录接口。

  1. 用户注册接口演示

    商城端网关服务的 Swagger 接口文档页面如图 14-16 所示。单击右上方的 “Select adefinition” 选项卡,选择 “user-service-swagger-route” 选项就能够看到用户微服务的 Swagger 接口文档了。

    image 2025 04 18 17 07 49 377
    Figure 1. 图14-16 商城端网关中用户微服务的 Swagger 接口文档页面

    单击 “用户注册”,并单击 “Try it out” 按钮,在参数栏中输入 loginName 字段和 password 字段,之后单击 “Execute” 按钮就能够发送用户注册的请求了。比如,要注册一个用户名为 13700001234、密码为 123456 的用户,过程如图 14-17 所示。

    image 2025 04 18 17 08 12 151
    Figure 2. 图14-17 用户微服务中注册接口测试过程

    单击 “Execute” 按钮发送注册请求后,测试结果如图 14-18 所示。

    image 2025 04 18 17 08 37 461
    Figure 3. 图14-18 用户微服务中注册接口测试结果

    如果参数信息都通过了基本的验证,就会得到注册成功的响应结果。此时,再去用户微服务的数据库中查看商城用户表中的数据,可以看到新增了一条用户名为 13700001234、密码为 123456 的用户数据。

  2. 用户登录接口演示

接下来测试用户登录接口。单击 “登录接口”,并单击 “Try it out” 按钮,在参数栏中输入 loginName 字段和 password 字段(注意,这里的 password 字段需要进行 MD5 加密),之后单击 “Execute” 按钮就能够发送用户登录的请求了。使用刚刚注册的用户名为 13700001234、密码为 123456 的用户进行登录,过程如图 14-19 所示。

image 2025 04 18 17 09 13 730
Figure 4. 图14-19 用户微服务中登录接口测试过程

单击 “Execute” 按钮发送登录请求后,测试结果如图 14-20 所示。

image 2025 04 18 17 09 33 938
Figure 5. 图14-20 用户微服务中登录接口测试结果

如果登录信息都正确,就可以得到一个登录成功的 Token 字段,该字段的值在响应对象 Resultdata 字段中,用于身份认证。比如,当前登录接口的测试结果获取了值为 “adfd7ca4995448456abffae70d7f434-” 的 Token 值,之后就能够使用该 Token 值访问项目中与商城用户相关的接口了。该 Token 值是笔者测试时生成的,读者在自行测试时生成的值可能与此不同,不要混淆了。

这两个接口对应到实际的项目页面中,是新蜂商城项目的登录页面和注册页面,显示效果如图14-21所示。

image 2025 04 18 17 09 58 827
Figure 6. 图14-21 新蜂商城登录页面和注册页面显示效果

至此,商城用户的注册功能和登录功能就测试完成了。读者在测试时可以关注 MySQLRedis 中的相关记录。注册成功后会向用户表新增一条数据,用户登录成功后会向 Redis 中新增一条 Token 记录,用于保存用户的登录信息。

把商品添加至购物车的功能演示

在实际的项目中,把商品添加到购物车需要在商品详情页面操作。因此,这里的功能演示会涉及商品详情接口、把商品添加至购物车接口和购物车列表接口。

  1. 商品详情接口演示

    单击右上方的 “Select a definition” 选项卡,选择 “goods-service-swagger-route” 选项就能够看到商品微服务的 Swagger 接口文档了。

    比如,在前文的首页功能演示中,接口返回了一些商品信息并显示到首页,如果想看 “华为Mate 50 Pro手机” 和 “iPhone 14 Pro手机” 两个商品的详情就需要访问商品详情接口。

    单击 “商品详情接口”,并单击 “Try it out” 按钮,在参数栏中输入商品 id字段和 Token 字段,之后单击 “Execute” 按钮就能够发送获取商品详情接口的请求了,如图 14-22 所示。

    image 2025 04 18 17 10 46 403
    Figure 7. 图14-22 商品微服务中商品详情接口测试过程

    接口响应结果如图 14-23 所示。

    image 2025 04 18 17 11 06 952
    Figure 8. 图14-23 商品微服务中商品详情接口测试结果

    如果用户正常登录且商品 id 正确,就可以得到商品详情内容。

  2. 把商品添加至购物车接口演示

    单击页面右上方的 “Select a definition” 选项卡,选择 “shop-cart-service-swagger-route” 选项就能够看到购物车微服务的 Swagger 接口文档了。

    单击 “添加商品到购物车接口”,并单击 “Try it out” 按钮,在参数栏中输入商品 id 字段和添加数量,在登录认证 token 的输入框中输入登录接口返回的 Token 字段值,如图 14-24 所示。

    image 2025 04 18 17 11 40 639
    Figure 9. 图14-24 购物车微服务中添加商品到购物车接口测试过程

    单击 “Execute” 按钮,接口响应结果如图 14-25 所示。

    image 2025 04 18 17 12 00 120
    Figure 10. 图14-25 购物车微服务中添加商品到购物车接口测试结果

    后端接口响应为 “SUCCESS” 表示添加成功。

    笔者在测试时,输入的商品数量和商品 id 都是符合规范且数据库中真实存在的商品 id。如果输入的商品数量过大,则会报错 “超出单个商品的最大购买数量!” 如果输入的商品 id 在数据库中并不存在,则会报错 “商品不存在!” 这一点读者在测试时需要注意。

  3. 购物车列表接口演示

    单击 “购物车列表(网页移动端不分页)”,并单击 “Try it out” 按钮。在 Token 输入框中填入刚刚获取的 Token 值,单击 “Execute” 按钮发起测试请求,就能够看到此时的购物车列表数据了,响应结果如图 14-26 所示。购物项 id 分别为 11 和 12,后续生成订单时需要用到。

    image 2025 04 18 17 12 34 963
    Figure 11. 图14-26 购物车微服务中购物车列表接口测试过程和结果

    以上三个接口对应到实际的项目页面中,是新蜂商城项目的商品详情页面和购物车列表页面,显示效果如图 14-27 所示。

    至此,把商品添加至购物车并查看购物车列表的功能就演示完毕了,读者在测试时可以关注 MySQL 数据库中购物项表的变化。

    image 2025 04 18 17 12 57 525
    Figure 12. 图14-27 新蜂商城商品详情页面和购物车列表页面显示效果

下单流程演示

在把心仪的商品加到购物车并确定需要购买的商品和对应的数量后,就可以执行提交订单的操作。这里的功能演示涉及添加收货地址接口、生成订单接口、订单列表接口。

  1. 添加收货地址接口演示

    单击右上方的 “Select a definition” 选项卡,选择 “order-service-swagger-route” 选项就能够看到订单微服务的 Swagger 接口文档了。

    下单时需要用户的收货地址信息,否则无法正确地生成订单数据。单击 “添加地址”,并单击 “Try it out” 按钮,在参数栏中输入收货地址的相关信息,在登录认证 token 的输入框中输入登录接口返回的 Token 字段值,如图 14-28 所示。

    image 2025 04 18 17 13 34 986
    Figure 13. 图14-28 订单微服务中添加收货地址接口测试过程

    单击 “Execute” 按钮,接口响应结果如图 14-29 所示。

    image 2025 04 18 17 13 49 813
    Figure 14. 图14-29 订单微服务中添加收货地址接口测试结果

    后端接口响应为 “SUCCESS” 表示收货地址信息添加成功。此时,再去订单微服务的数据库中查看收货地址表中的数据,可以看到已经新增了一条地址信息,该数据的主键 id1,后续生成订单时会用到。

  2. 生成订单接口演示

    单击 “生成订单接口”,并单击 “Try it out” 按钮,在参数栏中输入当前用户的地址 id 和需要结算的购物项 id 列表,这里填入的数据都是刚刚演示时生成的数据。在登录认证 token 的输入框中输入登录接口返回的 Token 字段值,如图 14-30 所示。

    image 2025 04 18 17 14 20 432
    Figure 15. 图14-30 订单微服务中生成订单接口测试过程

    单击 “Execute” 按钮,接口响应结果如图 14-31 所示。

    image 2025 04 18 17 15 46 503
    Figure 16. 图14-31 订单微服务中生成订单接口测试结果

    如果结算时提交的数据都正确,就可以得到一个订单生成后的订单号字段,该字段的值在响应对象 Result 的 data 字段中。比如,当前接口的测试结果获取了值为 “16524367250924868” 的订单号,之后就能够使用该订单号来测试取消订单、模拟支付、查看订单详情的接口了。

    生成订单接口测试成功。

  3. 订单列表接口演示

    单击 “订单列表接口”,并单击 “Try it out” 按钮,在参数栏中输入页码和订单状态字段,在登录认证 token 的输入框中输入登录接口返回的 Token 字段值,就可以查询当前用户的订单列表数据了,如图 14-32 所示。

    image 2025 04 18 17 16 15 820
    Figure 17. 图14-32 订单微服务中订单列表接口测试过程

    单击 “Execute” 按钮,接口响应结果如图 14-33 所示。

    image 2025 04 18 17 16 31 119
    Figure 18. 图14-33 订单微服务中订单列表接口测试结果

    请求成功。订单列表中所需的数据在 Result 类的 data 属性中,有分页信息、定案列表数据,每一条购物项中包括订单号、订单状态、下单时间、订单中包含的商品等内容。

    以上三个接口对应到实际的项目页面中,是新蜂商城项目的添加收货地址、确认订单页面和订单列表页面,显示效果如图 14-34 所示。

    image 2025 04 18 17 16 45 047
    Figure 19. 图14-34 新蜂商城添加收货地址、确认订单页面和订单列表页面显示效果

    至此,下单流程中的部分功能就演示完毕了,读者在测试时可以关注 MySQL 数据库中对应的表数据。

后台管理系统的部分功能演示

后台管理系统中的功能与商城端的功能不同,需要管理员用户的权限,在测试时也会使用后台管理系统端的网关服务。

  1. 管理员登录接口演示

    后台管理系统端网关中用户微服务的 Swagger 接口文档页面如图 14-35 所示。单击右上方的 “Select a definition” 选项卡,选择 “user-service-swagger-route” 选项就能够看到用户微服务的 Swagger 接口文档了,与管理员相关的接口也在用户微服务中。

    image 2025 04 18 17 17 25 535
    Figure 20. 图14-35 后台管理系统端网关中用户微服务的 Swagger 接口文档页面

    单击管理员操作相关接口的 “登录接口”,并单击 “Try it out” 按钮,在参数栏中输入 userName 字段和 password MD5 字段(注意,密码字段需要进行 MD5 加密),之后单击 “Execute” 按钮就能够发送管理员用户登录的请求了。默认管理员为 admin,密码为 123456,如果读者修改了数据库中的数据,则需要对应地修改这里的参数,如图 14-36 所示。

    image 2025 04 18 17 18 23 539
    Figure 21. 图14-36 用户微服务中管理员登录接口测试过程

    单击 “Execute” 按钮发送登录请求后,测试结果如图 14-37 所示。

    image 2025 04 18 17 18 42 889
    Figure 22. 图14-37 用户微服务中管理员登录接口测试结果

    如果登录信息都正确,就可以得到一个登录成功的 Token 字段,该字段的值在响应对象 Resultdata 字段中,用于管理员的身份认证。比如,当前登录接口的测试结果获取了值为 “f7513f77bd2395c5f2092e57ffb807f2” 的 Token 值,之后就能够使用该 Token 值访问项目中与管理员相关的接口了。该 Token 值是笔者在测试时生成的,读者在自行测试时生成的值可能与此不同,不要混淆了。

    该接口对应到实际的项目页面中,是新蜂商城项目后台管理系统的管理员登录页面,显示效果如图 14-38 所示。

  2. 添加商品分类接口演示

    接下来演示后台管理系统中的新增分类功能。单击页面右上方的 “Select a definition” 选项卡,选择 “goods-service-swagger-route” 选项就能够看到商品微服务的 Swagger 接口文档了。

    image 2025 04 18 17 19 12 482
    Figure 23. 图14-38 后台管理系统的管理员登录页面显示效果

    单击 “新增分类”,并单击 “Try it out” 按钮,在参数栏中输入分类名称、分类等级等字段,在登录认证 token 的输入框中输入管理员登录接口返回的 Token 字段值,如图 14-39 所示。

    image 2025 04 18 17 19 32 666
    Figure 24. 图14-39 商品微服务中添加商品分类接口测试过程

    单击 “Execute” 按钮,接口响应测试结果如图 14-40 所示。

    image 2025 04 18 17 19 53 194
    Figure 25. 图14-40 商品微服务中添加商品分类接口测试结果

    后端接口响应为 “SUCCESS” 表示添加成功,查看商品微服务的数据库,分类表中已经新增了一条数据。笔者在测试时输入字段都是符合规范的。如果输入的参数没有通过基本的验证判断,就会报出对应的错误提示。这一点读者在测试时需要注意。

    该接口对应到实际的项目页面中,是新蜂商城项目后台管理系统中的商品分类管理页面,显示效果如图 14-41 所示。

    image 2025 04 18 17 20 18 411
    Figure 26. 图14-41 商品分类管理页面显示效果
  3. 下架商品接口演示

    下面将演示在后台管理系统中商品 id 分别为 10003 和 10005 的商品下架功能。对应的接口在 Swagger 接口文档的 “后台管理系统商品模块接口” 选项卡中,如图 14-42 所示。

    image 2025 04 18 17 20 42 664
    Figure 27. 图14-42 后台管理系统端网关中商品微服务的 Swagger 接口文档页面

    单击 “批量修改销售状态”,并单击 “Try it out” 按钮,在参数栏中输入商品的销售状态(下架为 1,上架为 0)和需要下架的商品 id 数组,在登录认证 token 的输入框中输入管理员登录接口返回的 Token 字段值,如图 14-43 所示。

    image 2025 04 18 17 21 36 160
    Figure 28. 图14-43 商品微服务中下架商品接口测试过程

    单击 “Execute” 按钮,接口响应测试结果如图 14-44 所示。

    image 2025 04 18 17 21 56 454
    Figure 29. 图14-44 商品微服务中下架商品接口测试结果

    后端接口响应为 “SUCCESS” 表示商品下架成功。此时查看数据库中对应的记录,可以看到这两个商品的 goods_sell_status 字段已经被修改为 1(下架状态)。

    该接口对应到实际的项目页面中,是新蜂商城项目后台管理系统中的商品管理页面,显示效果如图 14-45 所示。

    image 2025 04 18 17 22 21 239
    Figure 30. 图14-45 商品管理页面显示效果

    后台管理系统端的功能很多,因篇幅有限,这里只演示了部分功能。笔者主要进行简单的演示,给读者一个可以参考的测试示例。另外,在测试时一定要关注一下 MySQLRedis 中的相关记录。