Avvio rapido
Complete guide to installing Goa and building your first service - from setup to running a working HTTP endpoint.
Goa è un framework di progettazione per la costruzione di microservizi in Go. Definite la vostra API utilizzando il potente DSL di Goa e lasciate che Goa generi il codice di base, la documentazione e le librerie client.
Goa segue un flusso di lavoro in tre fasi che separa la progettazione dell’API dall’implementazione, assicurando coerenza e riducendo il boilerplate.
Nella fase di progettazione, si definisce l’API utilizzando il DSL di Goa in file Go (in genere in una cartella design/):
Cosa si crea: file design/*.go contenenti le specifiche dell’API come codice Go.
Eseguire goa gen per generare automaticamente tutto il codice boilerplate:
goa gen myservice/design
Cosa crea Goa (nella cartella gen/):
Importante: Non modificare mai i file in gen/: vengono rigenerati ogni volta che si esegue goa gen.
Scrivete la vostra logica aziendale implementando le interfacce di servizio generate:
// 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
}
Cosa si crea: File di implementazione del servizio che contengono la logica aziendale effettiva.
| L’utente scrive, Goa genera | |
|---|---|
design/*.go - Definizioni API | gen/ - Tutto il codice di trasporto |
service.go - Logica di business | Specifiche OpenAPI |
cmd/*/main.go - Avvio del server | Definizioni del buffer di protocollo |
| Test e middleware personalizzato | Convalida delle richieste |
| Guida | Descrizione | ~Tokens |
|---|---|---|
| Quickstart | Installa Goa e costruisci il tuo primo servizio | ~1,100 |
| DSL Reference | Riferimento completo per il linguaggio di progettazione di Goa | ~2,900 |
| Code Generation | Comprendere il processo di generazione del codice di Goa | ~2.100 |
| Guida HTTP | Caratteristiche del trasporto HTTP, routing e pattern | ~1.700 |
| Guida gRPC | Caratteristiche del trasporto gRPC e streaming | ~1,800 |
| Gestione degli errori | Definizione e gestione degli errori | ~1.800 |
| Intercettatori | Intercettatori e modelli di middleware | ~1.400 |
| Produzione | Osservabilità, sicurezza e distribuzione | ~1.300 |
Sezione totale: ~14.500 gettoni
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}")
})
})
})
Generare ed eseguire:
goa gen hello/design
goa example hello/design
go run ./cmd/hello
Iniziate con la guida Quickstart per installare Goa e creare il vostro primo servizio in pochi minuti.
Per una copertura completa del DSL, vedere DSL Reference.