开源跨平台 API 客户端,支持 GraphQL、REST、WebSocket、SSE 和 gRPC,可本地、Git 或云端存储。
goadesign/goa
设计优先的 Go 框架,从同一份 Go 契约生成 HTTP、gRPC 和 JSON-RPC 服务、客户端及 OpenAPI/protobuf 规范。
- Star
- 6,122
- Fork
- 582
- 未关闭 Issue
- 37
- 最近提交
- 4天前
这是什么?
Goa 让开发者在 Go 语言的 DSL 中一次性描述类型、操作和校验规则。基于这份设计,它会生成 HTTP、gRPC 和 JSON-RPC 的服务端与客户端代码、CLI 客户端、OpenAPI 规范以及 Protocol Buffer 定义。所有传输方式调用同一个生成的服务接口,API 文档与代码保持一致。
开发者只需在 gen/ 目录之外编写自己的业务逻辑。修改设计中的字段或校验规则后重新生成,处理器、客户端、校验和规范会一起更新。项目还提供面向编程智能体的技能包,用于指导设计变更、代码生成和验证。
配套项目 Goa-AI 可用于构建 AI 智能体和 MCP 服务器,并复用同一套类型定义。
核心功能
- 01从同一份 Go 设计生成 HTTP、gRPC 和 JSON-RPC 传输层
- 02自动生成 Go 客户端、CLI 客户端和请求校验
- 03输出 OpenAPI 规范和 Protocol Buffer 定义
- 04支持通过 WebSocket、SSE 和 gRPC 流进行流式传输
- 05业务实现代码与生成代码分离
适用场景
- 构建需要同时提供 REST 和 gRPC 接口的 Go 微服务
- 无需手写即可让 OpenAPI 文档与 Go 接口保持同步
- 让编程智能体通过修改类型化契约并重新生成代码来调整 API
快速上手
- 1
安装 Goa 模块(需要 Go 1.27.3 或更高版本)
go get goa.design/goa/v3@latest - 2
根据设计生成服务端和客户端代码
go run goa.design/goa/v3/cmd/goa gen hello/design - 3
创建入门应用文件
go run goa.design/goa/v3/cmd/goa example hello/design - 4
在 8000 端口运行服务
go run ./cmd/hello --http-port=8000
使用前须知
- 需要 Go 1.27.3 或更高版本。
- 使用 gRPC 或 JSON-RPC 需要安装 Protocol Buffer 编译器和 Go protobuf 生成器;仅使用 HTTP 时可以避免这一步。
收录于专题
标签
常见问题
- goa 是什么?
- 设计优先的 Go 框架,从同一份 Go 契约生成 HTTP、gRPC 和 JSON-RPC 服务、客户端及 OpenAPI/protobuf 规范。 Goa 让开发者在 Go 语言的 DSL 中一次性描述类型、操作和校验规则。基于这份设计,它会生成 HTTP、gRPC 和 JSON-RPC 的服务端与客户端代码、CLI 客户端、OpenAPI 规范以及 Protocol Buffer 定义。所有传输方式调用同一个生成的服务接口,API 文档与代码保持一致。
- goa 可以免费使用吗?用的什么许可证?
- goa 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- goa 还在维护吗?
- 活跃维护中。goa 最近一次提交是在 2026年11月3日。
- goa 适合用来做什么?
- 构建需要同时提供 REST 和 gRPC 接口的 Go 微服务 无需手写即可让 OpenAPI 文档与 Go 接口保持同步 让编程智能体通过修改类型化契约并重新生成代码来调整 API
- goa 怎么安装和运行?
- 安装 Goa 模块(需要 Go 1.27.3 或更高版本): go get goa.design/goa/v3@latest 根据设计生成服务端和客户端代码: go run goa.design/goa/v3/cmd/goa gen hello/design 创建入门应用文件: go run goa.design/goa/v3/cmd/goa example hello/design 在 8000 端口运行服务: go run ./cmd/hello --http-port=8000
- 在哪里获取 goa?
- 源代码和安装说明在 GitHub 上:https://github.com/goadesign/goa
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
4万+30 本周2391TypeScriptApache-2.0维护活跃更新于 昨天
可自托管的 PHP API 网关与管理平台,可将数据库和业务逻辑发布为 REST API,并支持 MCP 供 AI 代理调用。
2128247PHPApache-2.0更新于 12天前
基于标准 Python 类型提示构建 API 的 Python Web 框架,内置数据校验与自动生成的交互式文档。
10.4万+191 本周1万PythonMIT更新于 24小时前
开源 API 网关,同时支持 REST 与 SOAP,可将 SOAP 服务转为 JSON API 并提供 OAuth2、JWT 等安全能力。
658+2 本周186JavaApache-2.0更新于 23小时前
用 Go 编写的原生本地优先 API 客户端,支持 REST、gRPC、GraphQL 和 WebSocket,并内置流量代理。
729+7 本周44GoBSD-3-Clause维护活跃更新于 3天前