API 开放平台 笔记
聚合api平台
后端源码:https://github.com/fusheng8/fusheng-api
运行环境:JDK17
前端源码:https://github.com/fusheng8/fusheng-api-vue
运行环境:NodeJs18
本项目使用的技术栈如下
后端:SpringBoot、SpringMVC、Mybatis Plus、Sa-token
前端:Vue3、AntdvPro初始模板、Ant Design For Vue
网关使用nacos和dubbo来和后端进行通信,使用Redis和Redisson提供的分布式锁对用户进行加锁防止扣费出现并发导致的错误。
目前实现了最基础的用户管理和接口增删查改以及网关对接口的校验和扣费。
每个接口可以自定义扣费。目前已经实现了初步的对接口参数的图形化配置和调试(还有bug和不足之处)。
通过Mybatis Plus的自动填充功能实现了对创建者、创建时间、更新者、更新时间的自动修改。
写这个项目也遇到了好多问题,都是靠GPT和百度找到的解决方案。主要问题如下。
1、在宝塔部署的前端路由失效,第一次进去可以访问,刷新就显示404.
问题原因:我对VueRouter设置是history模式,而vue实际上是一个单页面应用,因此是不存在该路径的,所以nginx会找不到该页面。
解决方案:根据VueRouter官方文档提供的配置来配置伪静态即可。官方文档地址:https://router.vuejs.org/zh/guide/essentials/history-mode.html#nginx
2、宝塔在将MySQL版本切换到8以后会一直报数据库服务异常,重启也没用。
问题原因:这是宝塔的bug
解决方案:只需要在宝塔里面重置一下数据库密码就可以了。参考链接:https://baijiahao.baidu.com/s?id=1780893797762371905&wfr=spider&for=pc
3、这个算是我踩的坑,vue使用v-model时绑定的对象里面字段名不能是key,不然会错误。
这只是一个初始版本,还有很多想到的功能没有实现,在这里先画个大饼,后面会慢慢完成下面内容。
1、优化一下UI和交互体验(对调试返回内容格式化,将部分不必要自由输入的改成只能选择等等)(已完成)
2、增加用户注册入口(已完成)
3、将频繁调用的数据存入Redis优化速度(已完成)
4、用户在重置sk的时候增加二次验证,必须二次验证通过才可以重置(已完成)
5、对接支付宝沙箱支付,实现充值积分功能(已完成)
6、增加用户可发布接口并且设置扣费来赚取积分,并且积分可以提现(发布需要管理员审核通过才可以展示)(已完成)
7、增加完整的接口调用日志记录(请求参数、返回参数等等)(已完成)
8、可以单独设置每个接口的调用频率来进行限流
9、增加接口调用次数等信息的图表展示
10、接入邮箱(注册、找回密码需要邮箱验证,积分不足、sk被重置可以邮箱发送提醒通知)(已完成)
11、通过FreeMarker自动生成SDK(已完成)
12、新增/修改接口时能根据填入的示例json数据自动生成对应的参数信息


