API和拦截器相关的设计简记
API
API设计方式:
- /?app=应用名&m=模块名&role=角色&version=版本
解析详情
- app:应用名不可为空。
- m:模块名不可为空。
- role:角色名为空时可通过Token等授权机制获取当前角色,当然如果传了role参数,也需要判断token与role是否相符,这个参数是否需要主要还是看系统设计。
- version:版本,为空时,默认为最新版本
API示例:
- /?app=sau_title/api&m=getRequire&role=teacher&version=v1
- /?app=sau_title/api&m=getRequire&role=teacher
- /?app=sau_title/api&m=getRequire
拦截器
DB
数据库可设计一个Token、role、用户ID的关系表,当然,用Redis或许更好。
id | token | role | user_id |
---|---|---|---|
1 | abcdef | teacher | 5 |
2 | bcdefg | admin | 9 |
逻辑
拦截到请求后,通过token获取用户信息,然后向下层传递。