接口设计
已收录文章:17篇
-
Go 泛型接口同时写类型集和方法时,约束的是可接受的类型与可调用的方法。本文用一个可运行的小实验拆开两层边界,解释为什么某些类型能传入、为什么调用方仍然不能调用具体类型方法,并给出检查和扩展写法。201 收藏
-
Go 接口升级时,既要识别未知字段避免拼写错误,又要保留新字段以兼容旧客户端。本文用 Decoder、DisallowUnknownFields 和 json.RawMessage 拆开这条边界。170 收藏
-
自定义 http.RoundTripper 做重试时,真正容易出错的不是循环次数,而是请求体能否重放、方法是否幂等以及错误如何返回。本文用一个可运行的重试 Transport 拆开这三个边界。457 收藏
-
AI Agent 一轮工具调用可能已经改写库存、发送通知,却在最后一步返回超时。本文用订单履约场景拆开部分成功的状态记录、补偿动作和安全重试边界,给出可落地的验收清单。460 收藏
-
AI 接口遇到 504 不能简单重复提交。本文用 OpenAI 的 X-Client-Request-Id 和 Gemini API 的指数退避建议,拆解请求标识、可重试错误、结果去重与人工复核的完整工作流。171 收藏
-
AI 接口遇到 504 不能简单重复提交。本文用 OpenAI 的 X-Client-Request-Id 和 Gemini API 的指数退避建议,拆解请求标识、可重试错误、结果去重与人工复核的完整工作流。229 收藏
-
AI 接口遇到超时不能简单重复提交。本文用 OpenAI 的 X-Client-Request-Id 和 Gemini API 的指数退避建议,拆解请求标识、可重试错误、结果去重与人工复核的完整工作流。482 收藏
-
Chrome 在 2026 年展示了 WebMCP 这一面向浏览器智能体的实验性能力。真正接入时,先把网页动作收敛成可授权、可校验、可回退的工具接口,再决定是否进入试验,而不是把现有 API 全部暴露出去。326 收藏
-
库存接口最难处理的不是把数字减一,而是让调用方准确区分扣减成功、重复请求、库存不足和参数错误。本文用 Redis Lua 原子脚本统一返回码,并给出 Go 服务端的参数、错误和兼容设计。346 收藏
-
列表接口从 page 改成 cursor 时,真正容易出问题的不是 SQL,而是参数语义、错误响应和旧客户端兼容。本文用 Go net/http 设计一个可灰度迁移的游标分页接口,给出返回结构、边界校验、错误码和回归检查。427 收藏
-
Golang · Go教程 | 2个月前 | golang · sse · Go教程 · net/http · 接口设计 · HTTP Go SSE FLUSH 流式响应 ResponseControllerGo 的流式响应不是把多次 Write 拼起来就结束了。本文从 http.ResponseController.Flush 入手,做一个可验证的 SSE 示例,解释缓冲何时真正送达、HTTP/2 与代理会带来什么差异,以及客户端断开后如何让 goroutine 和 ticker 及时收口。463 收藏
-
Golang · Go教程 | 2个月前 | golang · JSON · 故障排查 · Go教程 · 接口设计 · JSON Go 接口兼容性 DisallowUnknownFields 严格解码接口增加 json.Decoder.DisallowUnknownFields 后,旧客户端多传字段会从静默兼容变成 400。本文用一个订单接口故障复盘这个变化,说明如何定位触发条件、保留严格校验的收益,并通过灰度和版本边界避免再次误伤旧请求。174 收藏