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.

80 lines
2.3 KiB
Markdown

## 用户账户微服务
### 用户身份登录统一拦截
- 所有需要开发的微服务通用的配置
### 集成 Swagger2 实现代码即文档
-
### 用户账户微服务功能设计
-
### 数据表及 ORM 过程
-
### 用户地址与余额服务接口定义
- Service 返回包装成类进行返回, 尽量不要仅仅只返回一个ID, 防止后续的扩展需求
- 不要设计通过请求参数来获取当前用户的余额信息, 因为可以通过请求劫持来拿到别的请求信息, 防止越权
### 用户地址相关服务接口实现
### 用户地址服务接口可用性测试(测试用例)
### 用户余额相关服务接口实现
### 用户余额服务接口可用性测试(测试用例)
### 用户账户微服务对外 HTTP 接口
### 验证用户账户微服务功能可用性
```json
[
{
"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](pic/用户账户微服务总设计.png)
---
- 用户账户微服务的功能及在业务中的位置
- ![账户微服务在业务中的位置.png](pic/账户微服务在业务中的位置.png)