beego 怎么实现框架级的接口幂等?

已邀请:

lrita

赞同来自: gloomyzerg hacpai

提供一个申请`request_id`/`token`的接口,需要幂等的接口调用之前先申请`token`,然后调用是带上`token`。然后在框架层面的修改

在`Prepare`里的逻辑:获取`token`,在`cache`里查找这个`token`对应的`response`存在不存在,存在时直接拦截请求返回`response`,不存在时则放行。

在`Finish`里的逻辑,将需要幂等的接口的`response`种到cache里。

多进程部署的情况下,需要在cache层面实现`mutex`逻辑,防止并发冲突。cache里`mutex`的逻辑可以搜索一下相关文章吧。
singleflight之类的?

xnotepad - 80 后 IT 男

这个没办法在框架级别实现吧。
不知道你有没有解决这个问题

https://github.com/hprose/hprose-golang/wiki/2.0-新特征

'bee hprose' 一节已经提到
https://github.com/beego/bee
beego使用的是hprose来实现RPC接口的。而hprose的2.0版本已经支持了幂等,所以有可能beego已经可以支持幂等了

要回复问题请先登录注册