You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.3 KiB

用户账户微服务

用户身份登录统一拦截

  • 所有需要开发的微服务通用的配置

集成 Swagger2 实现代码即文档

用户账户微服务功能设计

数据表及 ORM 过程

用户地址与余额服务接口定义

  • Service 返回包装成类进行返回, 尽量不要仅仅只返回一个ID, 防止后续的扩展需求
  • 不要设计通过请求参数来获取当前用户的余额信息, 因为可以通过请求劫持来拿到别的请求信息, 防止越权

用户地址相关服务接口实现

用户地址服务接口可用性测试(测试用例)

用户余额相关服务接口实现

用户余额服务接口可用性测试(测试用例)

用户账户微服务对外 HTTP 接口

验证用户账户微服务功能可用性

[
  {
    "id": "dev-protocol-springcloud-project-account-service",
    "order": 0, // order 越小优先级越高0
    "predicates": [
      {
        "args": {
          "pattern": "/dev-protocol-springcloud-gateway/dev-protocol-springcloud-project-account-service/**"
        },
        "name": "Path"
      }
    ],
    "uri": "lb://dev-protocol-springcloud-project-account-service",
     "filters": [
       {
         "name": "HeaderToken"
       },
       {
         "name": "StripPrefix",
         "args": {
           "parts": "1" // 用来跳过上面的 pattern 前面的配置, 因为 [bootstrap.yml] 中的配置 context-path
         }
       }
     ]
  }
]
  • 补充放在nacos 的 gateway 的配置文件中

用户账户微服务总结

  • 微服务开始之前的准备工作
    • 用户身份登录拦截
      • 在请求进入 service 之前解析 header 中的 token 信息, 并填充用户信息到上下文中
      • 在请求结束之后,清理掉上下文中的用户信息
      • 对于一些特定的 HTTP 请求不要拦截(即白名单 )
    • 代码即文档:引入 Swagger
      • pom 中添加依赖配置
      • 自定义配置 Swagger

  • 微服务模块的设计思想
    • 微服务模块应该是低耦合、尽可能多的重用代码
    • Tips:设计并不唯-!
      • 用户账户微服务总设计.png

  • 用户账户微服务的功能及在业务中的位置
    • 账户微服务在业务中的位置.png