功能#
Huma 是一个现代、简单、快速且灵活的微框架,用于在 Golang 中构建 HTTP REST/RPC API,由 OpenAPI 3 和 JSON Schema 支持。发音 IPA: /'hjuːmɑ/。该项目的目标是提供:
- 一个现代的 REST 或 HTTP RPC API 后端框架,供 Go 开发者使用
- 由 OpenAPI 3.1 & JSON Schema 描述
- 针对现有服务的团队的渐进式采用
- 带上您自己的路由器、中间件和日志/指标
- 可扩展的 OpenAPI & JSON Schema 层,用于记录现有路由
- 防止常见错误的护栏
- 不会过时的文档
- 高质量的生成开发者工具
功能包括:
- 在您选择的路由器之上的声明式接口:
- 操作和模型文档
- 请求参数(路径、查询或头部)
- 请求体
- 响应(包括错误)
- 响应头部
- 使用 RFC9457 和
application/problem+json的 JSON 错误(但可以更改) - 每个操作的请求大小限制,带有合理的默认值
- 内容协商,服务器和客户端之间
- 支持条件请求,例如
If-Match或If-Unmodified-Since头部实用工具。 - 可选的自动生成
PATCH操作,支持: - 输入和输出模型的注解 Go 类型
- 从 Go 类型生成 JSON Schema
- 路径/查询/头部参数、请求体、响应头部等的静态类型
- 自动输入模型验证和错误处理
- 使用 Stoplight Elements 生成文档
- 可选的内置 CLI,通过参数或环境变量配置
- 例如通过
-p 8000、--port=8000或SERVICE_PORT=8000设置 - 内置启动操作和优雅关闭
- 例如通过
- 生成 OpenAPI,以访问丰富的工具生态系统
- 使用 API Sprout 或 Prism 生成模拟
- 使用 OpenAPI Generator 或 oapi-codegen 生成 SDK
- 使用 Restish 的 CLI
- 以及 更多 内容
- 为每个资源生成 JSON Schema,使用可选的
describedby链接关系头部,以及返回对象中的可选$schema属性,这些属性可集成到编辑器中进行验证和补全。
吉祥物
你好!我是快乐的 Huma 鲸鱼,在这里提供帮助。你会在文档中看到我留下有用的提示。
官方 Go 包文档始终可以在 https://pkg.go.dev/github.com/danielgtaylor/huma/v2 找到。继续阅读,了解 Huma 中可用的各种功能介绍。