Inicio rápido
Complete guide to installing Goa and building your first service - from setup to running a working HTTP endpoint.
Goa es un framework de diseño para construir microservicios en Go. Define tu API usando el potente DSL de Goa, y deja que Goa genere el código, la documentación y las librerías cliente.
Goa sigue un flujo de trabajo en tres fases que separa el diseño de la API de la implementación, garantizando la coherencia y reduciendo la repetición de tareas.
En la fase de diseño, defines tu API usando el DSL de Goa en archivos Go (típicamente en un directorio design/):
Lo que creas: design/*.go archivos que contienen la especificación de tu API como código Go.
Ejecuta goa gen para generar automáticamente todo el código boilerplate:
goa gen myservice/design
Lo que crea Goa (en el directorio gen/):
Importante: Nunca edites archivos en gen/ - se regeneran cada vez que ejecutas goa gen.
Escribe tu lógica de negocio implementando las interfaces de servicio generadas:
// service.go - You write this
type helloService struct{}
func (s *helloService) SayHello(ctx context.Context, p *hello.SayHelloPayload) (string, error) {
return fmt.Sprintf("Hello, %s!", p.Name), nil
}
Lo que creas: Archivos de implementación de servicios que contienen tu lógica de negocio real.
| Tu Escribes | Goa Genera |
|---|---|
design/*.go - Definiciones de API | gen/ - Todo el código de transporte |
service.go - Lógica de negocio | Especificaciones OpenAPI |
cmd/*/main.go - Puesta en marcha del servidor | Definiciones de búfer de protocolo |
| Pruebas y middleware personalizado | Validación de peticiones |
| Guía | Descripción | ~Tokens |
|---|---|---|
| Instalación de Goa y creación de su primer servicio | ||
| DSL Reference | Referencia completa del lenguaje de diseño de Goa | ~2,900 |
| Generación de Código | Entendiendo el proceso de generación de código de Goa | ~2,100 |
| Guía HTTP | Características del transporte HTTP, enrutamiento y patrones | ~1,700 |
| Guía gRPC | Características del transporte gRPC y streaming | ~1.800 |
| Interceptores](interceptors/) Interceptores y patrones de middleware | ~1.400 | Producción | Observabilidad, seguridad y despliegue | ~1.300 |
Sección total: ~14.500 fichas
package design
import . "goa.design/goa/v3/dsl"
var _ = Service("hello", func() {
Method("sayHello", func() {
Payload(String, "Name to greet")
Result(String, "Greeting message")
HTTP(func() {
GET("/hello/{name}")
})
})
})
Generar y ejecutar:
goa gen hello/design
goa example hello/design
go run ./cmd/hello
Empieza con la guía Quickstart para instalar Goa y construir tu primer servicio en minutos.
Para una cobertura completa de DSL, consulte la Referencia DSL.