如何设计一个幂等接口-LMLPHP


如何设计一个幂等接口-LMLPHP


如何设计一个幂等接口-LMLPHP

2、application.yml:主要是配置redis

3、业务代码:

新建一个枚举,列出常用返回信息,如下:

     •新建一个JsonUtil,当请求异常时往页面中输出json:

     •新建一个RedisUtil,用来操作redis:     •新建一个TokenUtil,用来生成和校验token:生成token没什么好说的,这里为了简单直接用uuid生成,然后放入redis中。校验token,如果用户没有携带token,直接返回false;如果携带了token,但是redis中没有这个token,说明已经被删除了,即已经访问了,返回false;如果redis中有,但是redis中的token和用户携带的token不一致,也返回false;有且一致,说明是第一次访问,就将redis中的token删除,然后返回true。     新建一个注解,用来标注需要进行幂等的接口:     接着要新建一个拦截器,对有@NeedIdempotent注解的方法进行拦截,进行自动幂等。      然后将这个拦截器配置到spring中去:



最后新建一个controller,就可以愉快地进行测试了:

访问/token,不需要什么校验,访问/hello,就会自动幂等,每一次访问都要先获取token,一个token不能用两次。


本文分享自微信公众号 - java开发那些事(javawebkf)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

09-03 11:18
查看更多