这个项目能做什么
Goa是一个用于构建Go服务的设计优先框架。无需分别编写处理器、客户端和规范,你只需在基于Go的DSL中描述类型、方法、验证和错误,生成器便会产出其余部分。
生成器从单一设计生成的内容包括:
- 类型化的服务接口、端点、客户端和边界验证
- HTTP服务器处理器、编码器/解码器、Go客户端、CLI命令和OpenAPI规范
- gRPC Protocol Buffer定义、服务器/客户端适配器、序列化和CLI命令
- JSON-RPC服务器/客户端代码、请求分发、批处理和通知
- 流式支持:HTTP的WebSocket和SSE、JSON-RPC的SSE以及gRPC流
- 命名结果视图,附带选择和序列化响应形状的代码
单一服务定义可以通过HTTP、gRPC和JSON-RPC暴露同一操作。生成的传输层共享一个服务接口,因此业务逻辑在生成树之外的普通Go中实现一次即可。修改设计并重新生成会同时更新处理器、客户端、验证和规范,从而减少代码与文档之间的偏差。
README还强调了一个编码代理工作流:可以将“Goa服务设计器”技能安装到应用仓库中,以指导设计更改、生成、实现和验证。该项目指向Goa-AI,用于构建复用Goa类型并将工具绑定到服务方法的AI代理和MCP服务器,支持内存或Temporal执行引擎。
入门需要Go 1.26或更高版本(推荐1.27.1)。快速入门指南涵盖初始化模块、编写设计、运行生成器和示例命令,以及调用生成的服务。对于所有三种传输方式,都需要Protocol Buffer编译器和Go protobuf生成器;仅HTTP的首次运行可以省略gRPC和JSON-RPC块。
文档涵盖DSL参考、代码生成、传输特定指南、安全方案和拦截器等生产主题,以及一组示例应用。该项目采用MIT许可证,并接受社区贡献。
评论
0 评分人数达到10人后显示
登录后参与讨论。