Design first.
Design first.
Goa si appoggia alla generazione automatica di codice per
alleviare il bisogno delle reflection o del codice ripetitivo.
Il tool goa genera vari artefatti tra cui codice, documentazione
clients e perfino output personalizzati attraverso i plugin.
Il risultato finale è un codice applicativo
pulito e conciso.
Il linguaggio di design di Goa è flessibile e sta fuori dal contesto applicativo – Tu decidi come la tua API funziona. Il design è l'unica fonte di veritá dalla cui costruzione sono derivati sia il comportamente che la documentazione. Il linguaggio di design di Goa è, essendo una DSL in GO, è facile da customizzare e i design risultanti sono facili da condividere.
Goa genera codice che segue le best practice ed è particolarmente adatto per costruire architetture di sistemi basati su microservizi. Il codice è organizzato in modo che problemi specifici di trasporto dati non vadano a impattare sulla logica di business.
Sponsor
Zuplo: Scala, Proteggi e Trasforma in Prodotto la tua API Goa
La nostra API Gateway consente di proteggere la tua API, scalarla a livello globale, generare
documentazione dalla tua OpenAPI e aggiungere la monetizzazione.
incident.io: Riprendersi più forti dopo ogni incidente
Usa la nostra piattaforma per permettere al tuo team di gestire gli incidenti dall'inizio alla fine.
Risolvi rapidamente e impara dagli incidenti, in modo da poter costruire prodotti più resilienti.
Speakeasy: Esperienza di sviluppo aziendale per la tua API
La nostra piattaforma semplifica la creazione di SDK ricchi di funzionalità e pronti per la produzione.
Accelera le integrazioni e riduci gli errori dando alla tua API l'esperienza di sviluppo che merita.
Mago del Design di Goa
Usa il Mago del Design di Goa per creare un design di Goa interattivamente.
(richiede un abbonamento a ChatGPT Plus)
Il Life Cycle dello sviluppo dei Servizi
La creazione di un servizio con Goa parte dal design. Il DSL di Goa ti permette di descrivere i cosiddetti "service methods", cosí come le sue strutture dati di input e output. Il DSL ti permette anche di definire come costruire e serializzare le tue strutture dati a partire da e attraverso protocolli specifici, come HTTP Body, HTTP Headers o messaggi gRPC.
Il tool Goa legge i tuoi design e produce tutto il codice necessario a costruire i vari servizi e un client tool. Il codice generato include i vari transport layers e la validazione dei vari input. L'implementazione di un servizio è quindi semplice come implementare delle interfacce Go, non importa quale protocollo di trasporto il servizio decide di adottare e seguire. In particolare Goa rende banale implementare un servizio che accetta sia richieste HTTP che gRPC.
La parte migliore del DSL di Goa è che il suo motore di valutazione è completamente disaccoppiato. I Plugin possono anche implementare dei DSL personalizzati per estendere i concetti descritti nel design. I Plugins possono anche generare output arbitrari o modificare quello generato dai generatori pre-costruiti nel tool. In particolar modo, il plugin go-kit rende possibile generare dei servizi compatibili con Go kit, i quali possono trarre vantaggio dal toolkit per necessita operative e infrastrutturali.
Getting Started
1 Impara le basi con la nostra Getting Started Guide.
2 Impara di più sul Goa DSL.
3 Consulta i vari esempi.
4 Unisciti al nostro canale Slack (puoi iscriverti qui).