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
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) |