- 重复提交几乎不是用户手抖,而是网络重试、页面重复点击、消息重复投递造成的。同一笔操作被执行两次,后果可能是重复扣款、重复发货、重复建单,所以后端接口要做到:同一个请求,无论来几次,最终效果只发生一次。这就是幂等。最实用的做法是幂等键。客户端为每一次业务操作生成一个唯一键,随请求一起发过来,常见做法是放在请求头 Idempotency-Key 里,键的粒度必须是业务操作本身,比如一笔订单、一张... 重复提交几乎不是用户手抖,而是网络重试、页面重复点击、消息重复投递造成的。同一笔操作被执行两次,后果可能是重复扣款、重复发货、重复建单,所以后端接口要做到:同一个请求,无论来几次,最终效果只发生一次。这就是幂等。最实用的做法是幂等键。客户端为每一次业务操作生成一个唯一键,随请求一起发过来,常见做法是放在请求头 Idempotency-Key 里,键的粒度必须是业务操作本身,比如一笔订单、一张...
- 时间问题有个特点:平时不出错,一出错就是一整类问题——统计报表差一天、定时任务提前或延后一小时、日志里的事件顺序对不上。 根源几乎都是同一个: 把"某个时刻"和"某个地方的时间"混为一谈 。 这篇梳理六个高频坑。 一、服务端返回的时间没有时区标记 这个字符串是什么时区?没有说明。它就是一颗定时炸弹。 前端拿到后直接 new Date(str) ,浏览器会 按本地时区 解析——也 时间问题有个特点:平时不出错,一出错就是一整类问题——统计报表差一天、定时任务提前或延后一小时、日志里的事件顺序对不上。 根源几乎都是同一个: 把"某个时刻"和"某个地方的时间"混为一谈 。 这篇梳理六个高频坑。 一、服务端返回的时间没有时区标记 这个字符串是什么时区?没有说明。它就是一颗定时炸弹。 前端拿到后直接 new Date(str) ,浏览器会 按本地时区 解析——也
- 先分清客户端错误与服务端错误,再按请求、网关、应用、依赖四层逐段缩小范围。 先分清客户端错误与服务端错误,再按请求、网关、应用、依赖四层逐段缩小范围。
- 不依赖第三方库,用threading和time实现线程安全的令牌桶限流器。 不依赖第三方库,用threading和time实现线程安全的令牌桶限流器。
- 先分清客户端错误与服务端错误,再按请求、网关、应用、依赖四层逐段缩小范围。 先分清客户端错误与服务端错误,再按请求、网关、应用、依赖四层逐段缩小范围。
- 先分清客户端错误与服务端错误,再按请求、网关、应用、依赖四层逐段缩小范围。 先分清客户端错误与服务端错误,再按请求、网关、应用、依赖四层逐段缩小范围。
- 在前面的教程中,我们已经使用 Vue 3 和 Element Plus 搭建了一个基础后台管理界面,实现了侧边栏、顶部导航、数据表格、搜索、分页和表单弹窗等功能。但是,目前的管理系统还缺少一个重要功能:用户登录与权限控制。一个真正可用的后台管理系统,不能允许任何人直接访问管理页面,也不能让普通用户随意调用管理员接口。本篇将结合 FastAPI 和 Vue 3,实现一套完整的身份认证与权限管理... 在前面的教程中,我们已经使用 Vue 3 和 Element Plus 搭建了一个基础后台管理界面,实现了侧边栏、顶部导航、数据表格、搜索、分页和表单弹窗等功能。但是,目前的管理系统还缺少一个重要功能:用户登录与权限控制。一个真正可用的后台管理系统,不能允许任何人直接访问管理页面,也不能让普通用户随意调用管理员接口。本篇将结合 FastAPI 和 Vue 3,实现一套完整的身份认证与权限管理...
- 把散落在各处的后端服务统一收到 API 网关后面,记录一下这次整理。 把散落在各处的后端服务统一收到 API 网关后面,记录一下这次整理。
- 把散落在各处的后端服务统一收到 API 网关后面,记录一下这次整理。 把散落在各处的后端服务统一收到 API 网关后面,记录一下这次整理。
- 本文深度解析进程、线程与协程的核心区别,结合实际业务场景提供精准的技术选型建议,助开发者告别并发设计迷茫。 本文深度解析进程、线程与协程的核心区别,结合实际业务场景提供精准的技术选型建议,助开发者告别并发设计迷茫。
- 为了每天自动签到,我让两个账号的浏览器页签一直开着不关,看能撑多久。两边条件几乎一致:同一台机器、同样的浏览器版本、同样的网络,都是扫码登录后停在后台。结果一个账号 12 小时后仍然在线,另一个中途掉回了登录页。 为了每天自动签到,我让两个账号的浏览器页签一直开着不关,看能撑多久。两边条件几乎一致:同一台机器、同样的浏览器版本、同样的网络,都是扫码登录后停在后台。结果一个账号 12 小时后仍然在线,另一个中途掉回了登录页。
- 前阵子把一个小工具改成前端配合后端的长连接,本地跑得好好的,部署上去以后换了个毛病:页面不动的时候正常,一到要推消息就断,每次都是连上差不多一分钟,控制台飘一行 WebSocket connection closed: code 1006。 前阵子把一个小工具改成前端配合后端的长连接,本地跑得好好的,部署上去以后换了个毛病:页面不动的时候正常,一到要推消息就断,每次都是连上差不多一分钟,控制台飘一行 WebSocket connection closed: code 1006。
- 状态码是 HTTP 里最"看起来简单"的部分——200 成功、404 找不到、500 服务器错误。但真到了排查线上问题的时候,误读状态码会把人带到完全错误的方向。 这篇挑五个最常见、也最容易被误解的点。 一、200 不代表成功 这是最容易吃亏的一条: HTTP 层的成功和业务层的成功是两件事。 一个很常见的写法: HTTP 层面 200,业务层面是失败。如果你的客户端只看 re 状态码是 HTTP 里最"看起来简单"的部分——200 成功、404 找不到、500 服务器错误。但真到了排查线上问题的时候,误读状态码会把人带到完全错误的方向。 这篇挑五个最常见、也最容易被误解的点。 一、200 不代表成功 这是最容易吃亏的一条: HTTP 层的成功和业务层的成功是两件事。 一个很常见的写法: HTTP 层面 200,业务层面是失败。如果你的客户端只看 re
- 实测 os.replace、os.rename、shutil.move 在 Windows 上的真实行为:替换成功时可见性原子(2000 次替换 0 次读到半截),但目标文件正被打开时直接 WinError 5,跨卷则报 WinError 17。 实测 os.replace、os.rename、shutil.move 在 Windows 上的真实行为:替换成功时可见性原子(2000 次替换 0 次读到半截),但目标文件正被打开时直接 WinError 5,跨卷则报 WinError 17。
- 在前面的教程中,我们已经使用 FastAPI 和 Vue 3 实现了前后端分离的用户管理系统,完成了用户列表查询、新增、编辑和删除等基础功能。不过,目前的页面仍然比较简单,缺少实际后台管理系统常见的布局和交互组件。真实的后台管理系统通常包含:左侧导航菜单顶部导航栏面包屑导航用户信息区域数据表格搜索与筛选分页组件新增和编辑弹窗多页面路由管理本篇将使用 Vue 3、Element Plus 和 ... 在前面的教程中,我们已经使用 FastAPI 和 Vue 3 实现了前后端分离的用户管理系统,完成了用户列表查询、新增、编辑和删除等基础功能。不过,目前的页面仍然比较简单,缺少实际后台管理系统常见的布局和交互组件。真实的后台管理系统通常包含:左侧导航菜单顶部导航栏面包屑导航用户信息区域数据表格搜索与筛选分页组件新增和编辑弹窗多页面路由管理本篇将使用 Vue 3、Element Plus 和 ...
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签