# sodo-platform
**Repository Path**: irvingsoft-sodo/sodo-platform
## Basic Information
- **Project Name**: sodo-platform
- **Description**: SODO 微服务平台
- **Primary Language**: Unknown
- **License**: MulanPSL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 1
- **Created**: 2021-08-13
- **Last Updated**: 2021-10-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# sodo-platform
**IBAC(Interface-Based Access Control,基于接口的权限控制)微服务快速开发平台。**
**系统后台前端仓库:** https://gitee.com/irvingsoft-sodo/sodo-housekeeper-view-web.git
**体验地址:** https://housekeeper.sodo.cool
**用户名:** admin
**密码:** 111111
由于原仓库错误的合并操作,故清空后重新提交了代码。
## 平台架构
sodo-platform
├─doc // 文档
├─sodo-auth // 统一认证服务
├─sodo-catkin // 分布式 ID 服务(整合自 TinyId)
├─sodo-common // 公共总包
│ ├─sodo-catkin-starter // 分布式 ID 客户端
│ ├─sodo-common-base // 公共基础包
│ ├─sodo-common-core // 公共核心包
│ ├─sodo-common-starter // 公共客户端
│ ├─sodo-knife4j-starter // Swagger2 接口文档客户端
│ ├─sodo-log-starter // 分布式日志客户端
│ ├─sodo-mybatis-starter // Mybatis-plus 客户端
│ ├─sodo-openfeign-starter // Openfeign 客户端
│ ├─sodo-rabbitmq-starter // RabbitMq 客户端
│ └─sodo-redis-starter // Redis 客户端
├─sodo-eureka // 注册中心服务
├─sodo-goods // 业务模块-商品服务(待开发)
├─sodo-housekeeper // 管家服务
├─sodo-log // 日志服务
├─sodo-order // 业务模块-订单服务(待开发)
├─sodo-payment // 业务模块-支付服务(待开发)
├─sodo-user // 用户服务
└─sodo-zuul // 路由网关服务
## 基于接口的权限控制(IBAC)
基于接口的权限控制从两个方面进行权限控制:
1. 控制接口所属客户端,没有加入接口对应的客户端列表的客户端无法请求该接口。
2. 在基于角色的权限控制基础上,将权限细化到每个接口。当请求的接口存在权限标识时,查询用户对应角色拥有的权限,并进行权限匹配。
## 启动流程
```
1. 使用 MySQL 新建数据库 sodo_platform
2. 运行 doc/sodo_platform.sql 脚本
3. 安装 Redis
4. 安装 RabbitMq
5. 更换每个服务中的 src/main/resources/application-dev.yml 中的数据库连接为本地 MySQL 的用户名和密码
6. 更换每个服务中的 src/main/resources/application-dev.yml 中的 RabbitMq 连接为本地 RabbitMq 的用户名和密码,默认为 guest/guest
7. 在 Idea 服务配置中添加启动参数 dev
8. 启动各个服务
```
## 应用管理
## 多客户端用户管理
## 多客户端角色管理
## 多客户端菜单管理
## 接口管理
## 多客户端 IP 管理
## 分布式日志
## 接口编写规范
* 推荐使用 URL 传参
* RESTFul 接口约定
`Method`(资源操作行为,改变资源的状态)。
`GET` :请求服务器特定资源。
`POST` :服务器创建一个新资源。
`PUT` :更新服务器资源客(整个资源)。
`DELETE` :服务器删除特定资源。
`PATCH` :更新服务器上的资源(资源的部分)。
## Swagger2 接口文档地址
127.0.0.1:9511/doc.html