Prima progetta, poi vinci.
Prima progetta, poi vinci.
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.
I vari request handler sono corredati da uno specifico endpoint context che espone sia lo stato della richiesta attraverso campi convenienti, che lo stato della risposta grazie a metodi che scrivono la risposta stessa al client.
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 le global properties, i tipi e gli endpoints che caratterizzano la tua API. La documentazione del package apidsl fornisce un veloce referimento a tutte le funzionalitá presenti nel DSL.
Una volta che il design della API è completato, goagen genera le corrispondenti strutture dati, il codice di validazione e gli handlers. Gli handlers sono definiti come metodi di una interfaccia Go. Implementare questi metodi pertanto è semplice come implementare l'interfaccia che ti viene generata automaticamente.
La parte migliore del DSL di Goa è che il suo engine è completamente disaccoppiato. I Plugin possono implementare delle DSL personalizzate per estendere i concetti descritti nel design. I Plugins possono anche generare output arbitrari.
Getting Started
1 Implementa un semplice servizio Goa con la Getting Started Guide.
2 Impara di più sul Goa DSL.
3 Consulta gli esempi e il servizio goa-cellar.
4 Unisciti al nostro canale Slack (puoi iscriverti qui).
Per saperne di più