跳到內容 Gin v1.12.0
功能
- feat(binding): 在 uri/query 綁定中新增 encoding.UnmarshalText 支援 (#4203)
- feat(context): 新增 GetError 和 GetErrorSlice 方法用於錯誤檢索 (#4502)
- feat(context): 為內容協商新增 Protocol Buffers 支援 (#4423)
- feat(context): 實作 Delete 方法 (#4296)
- feat(gin): 新增使用轉義路徑的選項 (#4420)
- feat(logger): 彩色延遲 (#4146)
- feat(render): 新增 bson 協議 (#4145)
錯誤修復
- fix(binding): 空值錯誤 (#2169)
- fix(binding): 改進表單綁定中的空切片/陣列處理 (#4380)
- fix(context): 修正多個 X-Forwarded-For 標頭值的 ClientIP 處理 (#4472)
- fix(debug): 版本不符 (#4403)
- fix(gin): 在 RunFd 中關閉 os.File 以防止資源洩漏 (#4422)
- fix(gin): 修正引擎處理器不支援的文字冒號路由 (#4415)
- fix(recover): 在恢復中抑制 http.ErrAbortHandler (#4336)
- fix(render): 在 Data.Render 中寫入內容長度 (#4206)
- fix(response): 完善回應生命週期的劫持行為 (#4373)
- fix(tree): 修正 RedirectFixedPath 中 findCaseInsensitivePathRec 的當機 (#4535)
- fix: 修正拼寫錯誤、改進文件清晰度,並移除死碼 (#4511)
增強
- chore(binding): 將 bson 相依性升級至 mongo-driver v2 (#4549)
- chore(context): 始終信任來自 unix 通訊端的 xff 標頭 (#3359)
- chore(deps): 將 golang.org/x/crypto 升級至 v0.45.0 (#4449)
- chore(deps): 將 quic-go 升級至 v0.57.1 (#4532)
- chore(logger): 允許略過查詢字串輸出 (#4547)
- chore(response): 防止 http.Flusher 存在時的 Flush() 當機 (#4479)
重構
- refactor(binding): 使用 maps.Copy 實現更清晰的對應處理 (#4352)
- refactor(context): 省略傳回值名稱 (#4395)
- refactor(context): 用常數替換硬編碼的 localhost IP (#4481)
- refactor(context): 使用 maps.Clone (#4333)
- refactor(ginS): 使用 sync.OnceValue 簡化引擎函式 (#4314)
- refactor(recovery): 智慧錯誤比較 (#4142)
- refactor(utils): 將工具函式移至 utils.go (#4467)
- refactor: for 迴圈可以使用整數範圍進行現代化 (#4392)
- refactor: 用具名常數替換 bodyAllowedForStatus 中的魔數 (#4529)
- refactor: 使用 b.Loop() 簡化程式碼並改進效能 (#4389, #4432)
建置流程更新 / CI
- ci(bot): 提高頻率並分組更新相依性 (#4367)
- ci(lint): 重構測試斷言和 linter 設定 (#4436)
- ci(sec): 改進 HTTP 中介軟體中的類型安全性和伺服器組織 (#4437)
- ci(sec): 排程 Trivy 安全掃描在每天 UTC 午夜執行 (#4439)
- ci: 用 Trivy 整合替換漏洞掃描工作流程 (#4421)
- ci: 更新 CI 工作流程並標準化 Trivy 設定引號 (#4531)
- ci: 在 CI 和文件中將 Go 版本支援更新至 1.25+ (#4550)
文件更新
- docs(README): 新增 Trivy 安全掃描徽章 (#4426)
- docs(context): 為 ShouldBind* 方法新增範例註解 (#4428)
- docs(context): 修正部分註解 (#4396)
- docs(context): 修正註解中錯誤的函式名稱 (#4382)
- docs(readme): 翻新並擴展文件以提高清晰度和完整性 (#4362)
- docs: 宣佈 Gin 1.11.0 版本並附帶部落格連結 (#4363)
- docs: 記錄並最終確認 Gin v1.12.0 版本 (#4551)
- docs: 翻新 GitHub 貢獻和支援範本 (#4364)
- docs: 以詳細說明翻新貢獻指南 (#4365)
- docs: 更新文件以反映 Go 版本變更 (#4552)
- docs: 更新功能文件說明以修復損毀的文件連結 (#4508)
效能
- perf(path): 用自訂函式替換 redirectTrailingSlash 中的正規表示式 (#4414)
- perf(recovery): 最佳化堆疊函式中的行讀取 (#4466)
- perf(tree): 使用 strings.Count 最佳化路徑解析 (#4246)
- perf(tree): 減少 findCaseInsensitivePath 中的配置 (#4417)
測試
- test(benchmarks): 修正不正確的函式名稱 (#4375)
- test(bytesconv): 為空/nil 案例新增測試 (#4454)
- test(context): 使用 http.StatusContinue 常數替代魔數 100 (#4542)
- test(debug): 改進 debug.go 的測試涵蓋率至 100% (#4404)
- test(gin): 為 ginS 套件新增全面的測試涵蓋 (#4442)
- test(gin): 解決整合測試中的競態條件 (#4453)
- test(render): 新增全面的錯誤處理測試 (#4541)
- test(render): 為 MsgPack 轉譯新增全面的測試 (#4537)