API开放平台 笔记

【API开放平台】By Reflux

在线访问:http://www.reflux-sharing.top/user/login

项目地址:https://gitee.com/reflux_zzy/Re-api-backend

前端地址:https://gitee.com/reflux_zzy/re-api-frontend-v2

4.14 PS 忙毕设,服务器另作他用,在线访问已停

完成的工作有:

1、制作阿里云OSS的starter,快速帮助新项目实现上传头像功能

2、上传头像后更新用户头像的事务处理

3、解决前端upload组件不会携带session请求的问题

4、使用JWT改造登录逻辑,使用ThreadLocal保存当前登录用户信息,解决session不能跨域以及无法应对分布式集群的问题

5、解决自定义拦截器与跨域拦截器冲突导致后端跨域处理全失效的问题

6、提供已登录用户签名优化的思路

7、编写通用调用接口方案,实现用户自定义上传接口(只要这个接口可用)

8、关键数据设置修改权限,让用户自定义上传接口时无法改变path路径(也就是后端处理第三方接口的路径)

9、接口上传的安全性问题:在接口调用失败后会使用默认参数再调用一次接口,看能否调用成功,失败则自动关闭接口

10、使用定时任务,定期清理长期失效的接口

11、解决Spring自调用事务失效问题

12、前端使用拦截器,拦截请求并给请求添加请求头,实现携带自定义请求头

13、复用管理端,让普通用户也可以自由对自己创建的接口进行增删改查。

14、使用maven子父依赖,方便打包

15、解决本地远程连接nacos报错fail to unregistered to (本机ip 28880)的问题

—————————————————————————————————

更新:

1、补全了接口端的全局异常处理和网关端的全局异常处理,让本地接口的可用性不再需要使用默认参数重测才知道是否可用

2、使用装饰器装饰网关响应,解决下层接口不存在返回whitelabel Error Page的问题

3、解决了bufferFactory.wrap写入不完全的问题

4、解决了dubbo警告:qos-server can not bind 的问题

5、初步改造成微服务

网关实现全局异常处理的好处是,统一异常的响应格式,让客户能知道自己为什么调用失败(比如签名错误,超时等),而不是只知道笼统的系统错误

后续计划:

1、修改使用分布式锁实现接口计数的思路,改用乐观锁,提高性能

2、尝试完善sdk的调用,使得后续不用传那么多参数来区分

3、学习限流技术,并运用到项目中.

暂时对现在的成果比较满意,前端参考nero哥的设计,特别感谢。

————————————————————————————————

流程图1是跨域拦截器失效后的简单处理方法

图2是使用跨域过滤器解决跨域拦截器失效的问题

图3是前端到接口端一条龙的调用逻辑,加了全局异常处理之后优雅了很多

图4是对于调用失败的各种处理逻辑

图5是网关端全局异常处理的好处展示

图6是不做处理调用接口异常的返回,很不雅(这个问题感觉没人注意....)

最后三张图是测试调用外部接口功能,直接偷取了一个免费接口。我写发布接口的时候会调用一次接口,只有调用成功才能发布,所以可以验证我们写的通用处理第三方接口的函数成功,让用户自主上传接口成为可能。

—————————————————————————————————

这个项目部署了4天才完成,期间遇到了无数的坑,最后终于完成,跑通所有流程,完成了自己想要的所有功能。笔记也写了2w2,希望这样能让秋招多点底气吧,只希望我的努力不要成为自娱自乐......

也希望我的笔记能帮助到后面的人。

PS:笔记记得很详细,如果想实现某个模块,比如接口可用性的判断那一块,或者使用JWT改造登录逻辑那一块,建议先看一遍,不要再跟着踩一轮坑了,哈哈。有些比较复杂的,也都画了流程图,如果有哪里考虑不够清楚的,希望能告诉我。又或者泄露了个人信息,也请告诉我。

最后还有一个注意事项,开微服务的话这个项目非常吃内存,4g都扛不住,网关如果给的JVM参数小了,会导致网关时常连接超时! cffj43gi dfj3gsys rotoikhc u3bba6x2 swrop7qs 503ul1jp w6lv4tch b0kim5hi hmpqdti8

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
Reflux
作者分享
悲伤的一天 打杂,拉数据,测接口。 搞得多了干脆不用Java了,拿Python写快一点。 要求一个接一个,没啥时间学习。 好不容易完成需求,还得提心吊胆是不是做太慢了,正职要那么久吗? 同事们都不错,相处久了就暴露自己幼稚的一面。今晚十点多,打算全量跑一笔数据,code review说需要加根据xxx加兜底,我一听直接说没学过哎,因为我想早点回家改论文了,看到老板脸色一青我才知道说错话了,但也不知道怎么补救。算了,明天再做吧。 倒是有做了一个独立项目,但是之前没人做过类似的事情,不知道怎么验证正确性,偏偏又涉及比较关键的数据,所以迟迟没拿到结果。 上班和学习感觉还是很不一样的。前者要累得多,尤其是面对没遇到过的问题急得团团转,担心能不能在期限内做出来,这感觉,压力还是很大的。别的同事也有很多事情,bug最后还是需要自己来找的。 不要拿我正在努力做事情来安慰自己,如果是没价值的事情,做起来或许只是待在舒适圈。有时候不是努力,只是享受没浪费时间的感觉而已。当身体不行的时候,意志力会带你去另一个世界。 调休这个事情,读书的时候没感觉,毕竟不想听课了还能玩手机,但对于上班,面对做不完的事情的时候,就觉得,不能这样搞,还是要均匀的休息,要多多的休息。 乱七八糟想一通,希望能顺利毕业吧。 表现好表现差,都只不过是一天,明天再继续努力,也是可以的 打杂,拉数据,测接口。
9
4月4日求助 原题目背景:小明想和朋友对比双方收藏夹的网站。 现在有A、B两组字符串 其中每个字符串都以英文点号分割,如:www.baidu.com 请于A组中找到B组中不包含的字符串。 并且考虑下面一种情况:A中字符串包含B中字符串,也算匹配成功 如:A中的www.baidu.com包含B中的www.baidu 包含的部分需要以点号分割,并且完全匹配 单个字符串可能比较长,请尽量在考虑性能的情况下完成扫描匹配。 样例1: A中含有字符串:baidu.com、zz.xxx.baidu.cn、baidu.net.un B中含有字符串:baidu.com、zz.xxx.baitu、baidu.net 那么A匹配上B的字符串为 baidu.com,因为完全匹配、以及baidu.net.un,因为它有一部分前缀和B中字符串baidu.net完全匹配 思路一:把B的字符串全装入Hash、遍历A的字符串key,看是否能直接匹配,不能,则遍历B字符串,看是否有B字符串为A字符串的前缀。时间复杂度高 思路二:当不能直接匹配时,从后往前切分A的字符串,每切分一次就再次使用hash的contains进行完全匹配。仍然不能通过,因为A中有个别字符串非常长,但B中没有该串,需要做大量无用的切分。 思路三:前缀树、KMP,时间不够了,也不知道能不能行。 有没有朋友能帮帮忙,集思广益一下,撕不出来了。
9
日子没半天闲的[发抖] 完事一定去校医院体检一下,最近老是掉头发,洗澡打上洗发水也搓不出泡泡,头发稀疏导致的吗? 秋招减了十斤,减肥神器。最近忙学校乱七八糟的不知道会减多少斤。 🙏希望人没事。朋友们,一定爱惜身体,噶了的话半辈子白搭辽。
20
需求驱动设计 互联网精神 这几天,玩hexo&butterfly玩得不亦乐乎。 令我很伤心的是,大部分好看的魔改,都不把整个魔改历程发出来,眼馋某个设计的时候,前端基础又无法支撑我完成[困] 不过也可以理解,有的大佬是因为做完当时没记录,之后忘了具体怎么写的了,有的是自用,有的是省略了一些小白的教学。 由此,更加感激那些开源的大佬了[强],时间都是钱,相当于别人把自己的钱免费送[抱拳],不得不佩服这种无私的精神。 魔改了几天,反而一篇博客没发[捂脸],很明显本末倒置了哈哈哈,忘了自己最初的需求只是找个地方搬运自己的笔记。 anyway,我的博客魔改之旅就此打住,能用就行[奸笑],完成比完美更重要。
13
国庆回来收获最大的一场面试,基本都说到点子上了。时间是国庆收假,距离现在8 9天,emo了好久,厂子不说了,都听说过。大家要好好努力,让自己更有底气才行哇,不然要难受好久。 问:你对我今天有什么建议 答:说实话,你的简历在已经发offer的同学中,差距比较大,可能只是看出你有几个项目经验,有点那么点意思,把你放了过来,但最大的问题是你没有实习经验,这个是硬伤,你没有接触过实际公司的业务开发,然后你做这些东西,从它的实际背景上,实际应用上,深度上,然后包括技术上,其实都远远不够,刚刚问你实际的应用价值,你根本答不上点子上,所以我就不会深入去问了,最基本的一个考虑其实就过不了关,然后很明显的一个缺陷就是,问你什么你答什么就行了,然后关心的你可以多说说,不关心的其实你没必要去带着面试官,不可能被你带着走的,所以这些点综合来看,我觉得你有点盲目自信,不是打击你,这份简历,在这整个校招中,属于中下位置,还有一个是你目前是本科学历,现在很多研发岗本科已经不招收了,除非特别优秀的,我个人感觉,你目前应该是没有offer的,因为面的很多优秀的,目前也还在流程中,根据整体的流程来看,我觉得你需要赶的东西还很多,如果可以的话,最好还是找一份实习,如果你想本科找工作的话,立即,实习起来,然后春招。如果这条路走不通,那么我建议你读研。不排除你这样面下去,你可能会有offer,因为中小企业可能很需要人。
31
下载 APP