《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
关于 LearnKu
先保证代码没 BUG 的情况下,你要会正确地使用数据库的事务。
详细如下:生成一哥全局唯一的订单号。在用户进入创建订单的页面时,前端页面先调用这个生成订单号的方法得到一个订单号,在用户提交订单的时候,在创建订单的请求中带着这个订单号。这个订单号也是我们订单表的主键,这样,无论是用户手抖,还是各种情况导致的重试,这些重复请求中带的都是同一个订单号。订单服务在订单表中插入数据的时候,执行的这些重复 INSERT 语句中的主键,也都是同一个订单号。数据库的唯一约束就可以保证,只有一次 INSERT 语句是执行成功的。 如果是新增的同时(新增成功了)又手抖点了一下这时候变成更新了,那你同样只返回订单创建成功了就行了。
楼上说的没错,你要避免接口重复请求,其实把接口做成
幂等性就好了。@Ali 这个方法是不错,但是估计很少是这样做吧
加个缓存不就行了,两秒内再次请求点击提示他请勿重复提交
为了业务的正确性: 首先, 前端需要控制 不能 让用户连续点击 提交 按钮. 其次, 你的接口做成
幂等的.@ouer1994 谢谢你的回复