项目上线地址:http://122.9.148.119/ 由于服务器内存限制,实际调用接口的服务功能无法启动(即api-interface服务),且其他服务可能出宕机,如果所有接口都无法发送请求且报错500,是网关nacos挂掉了,请晚点再试。 (第三方登录可能会出现502问题,或者无法成功登录,该情况为nacos挂掉了,可以刷新页面尝试能否登录,如果不能,建议使用账号密码进行登录)
个人API开放平台是基于 @鱼皮 的《API开放平台》的基础上继续开发的一个分布式项目,仅用于个人学习使用
软件架构说明:
- 1、新增技术或插件:
- Tencent Cloud Api
- Rabbit Mq
- Sentinel
- Feign
- Spring Security
- 2、基于 @鱼皮 的《API开放平台》项目,新增或重构功能如下:
- 1、新增用户登录后返回token、以及token拦截器
- 2、重构用户表:将ak、sk单独放在表
Auth
中,且用户表中新增手机号mobile
字段 - 3、新增用户通过手机号、发送手机验证码方式进行登录,使用令牌桶算法对发送短信接口进行限制
- 4、新增用户注册、忘记密码功能和页面,重构用户注册功能(需要使用手机号进行验证)。
- 5、新增在网关层中使用Sentinel来实现限流、降级等操作。
- 6、修改SDK请求基本路径,interface服务使用基本请求路径中携带的
headers
,通过反射技术实现只通过一个基本路基动态调用API接口。 - 7、新增框架Spring Security 框架的使用(具有两种鉴权模式,可以选择使用Spring Security,也可以使用拦截器来实现)
- 8、新增Rabbit Mq 的使用,主要涉及到消息可靠性保证等功能实现(主要用于订单流程)
- 9、新增Feign来实现远程调用
- 10、新增接口购买功能(通过支付宝沙箱功能来实现付款功能)
- 11、新增第三方登录功能(Gitee、GitHub),微信公众号登录需要备案等其他原因,不再实现
- 12、新增分布式锁的使用
- api-front :为项目前端,前端项目启动具体看readme.md文档
- api-common :为公共封装类(如公共返回对象、)
- api :为项目主体,主要包括用户相关、接口相关等功能
- api-gateway :为网关服务,涉及到限流、统一鉴权
- api-order :为订单服务,主要涉及到接口的购买等
- api-third-party:为第三方服务,主要涉及到发送短信、第三方登录、支付宝沙箱支付功能
- api-interface:为接口服务,主要用于实现接口调用的功能
- api-sdk:为生成的SDK源码
- api-config:为nacos的配置文件
支付宝沙箱环境账号密码:(该环境下,周日到周一是维护时间,不能使用该功能)
登录密码111111
支付密码111111
写在最后
这个花了孩子挺久时间的,前后端都是自己写的,之前没有学过react,这次跟着文档来写,前端还是花了一定时间
有些地方可能还存在bug,目前我自己测试了几次都没问题,如果有问题,欢迎大家在 Issuse 中提出或者 评论区 留言