Démarrage rapide
Complete guide to installing Goa and building your first service - from setup to running a working HTTP endpoint.
Goa est un framework de conception pour construire des microservices en Go. Définissez votre API à l’aide du puissant DSL de Goa et laissez Goa générer le code de base, la documentation et les bibliothèques client.
Goa suit un flux de travail en trois phases qui sépare la conception de l’API de sa mise en œuvre, garantissant ainsi la cohérence et réduisant les tâches répétitives.
Dans la phase de conception, vous définissez votre API en utilisant le DSL de Goa dans des fichiers Go (généralement dans un répertoire design/) :
Ce que vous créez : fichiers design/*.go contenant la spécification de votre API sous forme de code Go.
Exécutez goa gen pour générer automatiquement tout le code de base :
goa gen myservice/design
Ce que Goa crée (dans le répertoire gen/) :
Important : Ne modifiez jamais les fichiers dans gen/ - ils sont régénérés chaque fois que vous exécutez goa gen.
Écrivez votre logique commerciale en mettant en œuvre les interfaces de service générées :
// 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
}
Ce que vous créez : Les fichiers d’implémentation des services qui contiennent votre logique métier réelle.
| Vous écrivez, Goa génère | |
|---|---|
design/*.go - Définitions de l’API | gen/ - Code de transport |
service.go - Logique d’entreprise | Spécifications OpenAPI |
cmd/*/main.go - Démarrage du serveur | Définitions de la mémoire tampon du protocole |
| Tests et intergiciels personnalisés | Validation des requêtes |
| Guide | Description | ~Tokens |
|---|---|---|
| Quickstart | Installez Goa et construisez votre premier service | ~1,100 |
| Référence DSL](dsl-reference/) | Référence complète pour le langage de conception de Goa | ~2,900 |
| Génération de code | Comprendre le processus de génération de code de Goa | ~2,100 |
| Guide HTTP](http-guide/) | Caractéristiques, routage et modèles du transport HTTP | ~1 700 |
| Guide gRPC](grpc-guide/) | Fonctionnalités de transport gRPC et streaming | ~1,800 |
| Gestion des erreurs | Définition et gestion des erreurs | ~1 800 |
| Intercepteurs](interceptors/) | Intercepteurs et modèles d’intergiciels | ~1 400 |
| Production](production/) | Observabilité, sécurité et déploiement | ~1 300 |
Section totale: ~14 500 jetons
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}")
})
})
})
Générer et exécuter :
goa gen hello/design
goa example hello/design
go run ./cmd/hello
Commencez par le guide Quickstart pour installer Goa et créer votre premier service en quelques minutes.
Pour une couverture complète du DSL, consultez la Référence DSL.