Cliente de API multiplataforma y de código abierto para GraphQL, REST, WebSockets, SSE y gRPC, con almacenamiento local, en Git y en la nube.
goadesign/goa
Framework de Go basado en el diseño primero que genera servicios HTTP, gRPC y JSON-RPC, clientes y especificaciones OpenAPI/protobuf a partir de un único contrato en Go.
- Estrellas
- 6,120
- Forks
- 582
- Issues abiertos
- 37
- Último commit
- hace 3 días
¿Qué es?
Goa permite describir tipos, operaciones y reglas de validación una sola vez mediante un DSL de Go. A partir de ese diseño, genera código de servidor y cliente para HTTP, gRPC y JSON-RPC, un cliente CLI, especificaciones OpenAPI y definiciones de Protocol Buffers. Todos los transportes llaman a la misma interfaz de servicio generada, por lo que la documentación de la API se mantiene sincronizada con el código.
Los desarrolladores escriben solo la lógica de negocio en sus propios archivos Go, fuera del directorio generado gen/. Al cambiar un campo o una regla de validación en el diseño y volver a generar el código, se actualizan juntos los handlers, los clientes, la validación y las especificaciones. El proyecto también ofrece una skill para agentes de programación que guía los cambios de diseño, la generación y la verificación.
Goa también cuenta con un proyecto complementario, Goa-AI, para crear agentes de IA y servidores MCP que reutilizan las mismas definiciones de tipos.
Funciones clave
- 01Genera transportes HTTP, gRPC y JSON-RPC a partir de un único diseño en Go
- 02Genera automáticamente clientes Go, un cliente CLI y la validación de solicitudes
- 03Produce especificaciones OpenAPI y definiciones de Protocol Buffers
- 04Admite streaming mediante WebSocket, SSE y streams de gRPC
- 05Mantiene el código de implementación separado del código generado
Casos de uso
- Crear un microservicio en Go que deba exponer endpoints REST y gRPC
- Mantener la documentación OpenAPI sincronizada con una API de Go sin escribirla a mano
- Permitir que agentes de programación modifiquen una API editando un contrato tipado y volviendo a generar el código
Inicio rápido
- 1
Instala el módulo Goa (requiere Go 1.27.3 o posterior)
go get goa.design/goa/v3@latest - 2
Genera el código del servidor y del cliente a partir de tu diseño
go run goa.design/goa/v3/cmd/goa gen hello/design - 3
Crea los archivos de la aplicación inicial
go run goa.design/goa/v3/cmd/goa example hello/design - 4
Ejecuta el servicio en el puerto 8000
go run ./cmd/hello --http-port=8000
Antes de usarlo
- Requiere Go 1.27.3 o posterior.
- Para usar gRPC o JSON-RPC, es necesario instalar el compilador de Protocol Buffer y los generadores de protobuf para Go. Si en la primera ejecución solo usas HTTP, no los necesitarás.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es goa?
- Framework de Go basado en el diseño primero que genera servicios HTTP, gRPC y JSON-RPC, clientes y especificaciones OpenAPI/protobuf a partir de un único contrato en Go. Goa permite describir tipos, operaciones y reglas de validación una sola vez mediante un DSL de Go. A partir de ese diseño, genera código de servidor y cliente para HTTP, gRPC y JSON-RPC, un cliente CLI, especificaciones OpenAPI y definiciones de Protocol Buffers. Todos los transportes llaman a la misma interfaz de servicio generada, por lo que la documentación de la API se mantiene sincronizada con el código.
- ¿goa es gratuito? ¿Qué licencia tiene?
- goa es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿goa sigue mantenido?
- Mantenimiento activo. El último commit de goa fue el 3 nov 2026.
- ¿Para qué puedo usar goa?
- Crear un microservicio en Go que deba exponer endpoints REST y gRPC Mantener la documentación OpenAPI sincronizada con una API de Go sin escribirla a mano Permitir que agentes de programación modifiquen una API editando un contrato tipado y volviendo a generar el código
- ¿Cómo se instala goa?
- Instala el módulo Goa (requiere Go 1.27.3 o posterior): go get goa.design/goa/v3@latest Genera el código del servidor y del cliente a partir de tu diseño: go run goa.design/goa/v3/cmd/goa gen hello/design Crea los archivos de la aplicación inicial: go run goa.design/goa/v3/cmd/goa example hello/design Ejecuta el servicio en el puerto 8000: go run ./cmd/hello --http-port=8000
- ¿Dónde consigo goa?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/goadesign/goa
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Gateway de API y plataforma de gestión PHP autoalojados que convierten bases de datos y lógica de negocio en API REST, con soporte para MCP para agentes de IA.
Un framework web de Python para crear APIs con anotaciones de tipos estándar, validación automática, documentación OpenAPI y alto rendimiento.
API gateway de código abierto que hace proxy de servicios REST y SOAP, con despliegue de OpenAPI, conversión de WSDL a OpenAPI, seguridad OAuth2/JWT y validación de mensajes.
Plugin de protoc que genera un servidor proxy inverso para traducir llamadas HTTP RESTful con JSON en solicitudes gRPC para servicios Go.
Cliente de API nativo y local-first para REST, gRPC, GraphQL y WebSocket, escrito en Go y con un proxy de tráfico integrado.