go-openapi/runtime
GitHub: go-openapi/runtime
go-openapi/runtime 为 Go 语言 OpenAPI 工具链提供运行时接口和中间件组件,支撑基于 OpenAPI 规范的代码生成与非类型化 API 调用。
Stars: 261 | Forks: 152
# runtime
[][test-url] [][cov-url] [][vuln-scan-url] [][codeql-url]
[][release-url] [][gocard-url] [][codefactor-url] [][license-url]
## [][doc-url] [][godoc-url] [][discord-url] [][goversion-url]  
一个用于 go OpenAPI 工具包的 runtime。
用于代码生成或非类型化使用的 runtime 组件。
## 公告
[**作为 github 页面的完整文档**][doc-url]
**`v0.30.0` 中 API 表面的变更**:
* 实用工具包 `header` 现已移动到 `github.com/go-openapi/runtime/server-middleware/negotiate/header`
**`v0.30.0` 中的语义变更**:
函数 `negotiate.NegotiateContentType`(为了向后兼容,可用作别名 `middleware.NegotiateContentType`
现在会考虑 MIME 参数执行完全匹配。
之前的行为(在去除参数后按出现顺序匹配)可以通过选项 `negotiate.WithIgnoreParameters`
显式启用。
* **2026-05-07** :将 UI 和 Spec 中间件公开为一个独立的、无依赖的模块。
* **2026-05-05** :将内容协商方法公开为一个独立的、无依赖的模块
## 状态
API 已稳定。
## 在您的项目中导入此库
```
go get github.com/go-openapi/runtime
```
## 更新日志
参见
有关 v0.29.0 版本,请参阅[发布说明](docs/NOTES.md)。
从该版本开始,变更将在 github 发布说明中跟踪。
**接下来有什么?**
展望未来,我们希望:
* [x] 修复一些文件上传请求的已知问题(例如 #286)
* [] 继续缩小依赖范围:
* [x] 将中间件和其他有用的实用工具拆分为一个独立的、无依赖的模块
* 在独立模块中支持 yaml (v2)
* 引入更多关于 opentelemetry 的最新支持,作为一个独立演进的模块
(为了避免破坏性变更,现有的 API
将继续维护,但演进的节奏将比 opentelemetry 慢)。 (v2)
* [] 发布完善的文档和示例
## 许可
本库基于 [SPDX-License-Identifier: Apache-2.0](./LICENSE) 发布。
参见许可 [NOTICE](./NOTICE),其中回顾了它所构建的所有软件片段的许可条款。
## 其他文档
* [常见问题解答](https://go-openapi.github.io/runtime/tutorials/faq/) · [Media-type 选择](https://go-openapi.github.io/runtime/tutorials/media-types/) · [Client keep-alive](https://go-openapi.github.io/runtime/tutorials/keep-alive/)
* [所有贡献者](./CONTRIBUTORS.md)
* [贡献指南][contributing-doc-site]
* [维护者文档][maintainers-doc-site]
* [代码风格][style-doc-site]
## 发布新版本
维护者可以通过以下任一方式发布新版本:
* 运行[此工作流](https://github.com/go-openapi/runtime/actions/workflows/bump-release.yml)
* 或推送一个 semver 标签
* 首选签名标签
* 标签信息会前置到发布说明中
标签:API, EVTX分析, Go, OpenAPI, Ruby工具, SOC Prime, 代码生成, 开发工具, 日志审计, 渗透测试工具, 运行时