Hello, goa
Today I’m very excited to announce the release of goa v1.0.0. goa provides a design first approach for building microservices in Go. It consists of three parts: a DSL for describing the API design, a...
View ArticleFrom Design To Production
Google recently announced the open beta release of the newest set of features in Google Cloud Endpoints. The part of the announcement that got me especially excited was: We’re also announcing support...
View Articlegoa v1.1.0
Edit: the original announcement listed a PR from Jared Bischof which added the ability to dynamically change the set of JWT keys used to authorize incoming requests. This PR is not in 1.1.0 as it...
View ArticleTracing goa Services with AWS X-Ray
AWS announced the availability of X-Ray in beta as one of the many product announcements that were made at the re:Invent conference. Like most (all?) tracing solutions AWS X-Ray follows the...
View Articlegoa v1.2.0
Today I am very pleased to announce the release of goa v1.2.0! This release contains all the changes made in the v1 branch of goa for the past 4 months - since the release of v1.1.0. New Team Members!...
View Articlegoa v1.3.0
Another 4 months and another goa release! goa v1.3.0 is out! This version includes new features and a slew of bug fixes. Thank you to all the contributors that spent a lot of time writing (and...
View Articlegoa v1.4.0
It’s been almost a year since the last official release of goa. During that year many contributions have been made including both new features and bug fixes. The team has also been hard at work on v2...
View ArticleUpgrading from Goa v1 or Goa v2 to v3
Upgrading from v2 to v3 v2 and v3 are functionally equivalent making the upgrade pretty straightforward. v3 requires Go module support and therefore Go 1.11 or higher. Upgrading from v2 to v3 is as...
View ArticleHandling Errors
Goa makes it possible to describe the errors that a service method may return. From this description Goa can generate both code and documentation. The code provides the transport specific marshalling...
View ArticleFrequently Asked Questions
When are validations defined in the design enforced? There is a trade-off between performance and robustness wrt enforcing the validations defined in the service design. Goa trusts that the user code...
View Articlegoa v1.4.1
goa v1.4.1 is out! This release contains a few bug fixes and mainly updates the uuid package dependency to a maintained repository. New Features UUID Package Update v1.4.1 updates the import of the...
View ArticleHTTP Encoding
Overview Goa supports a flexible encoding and decoding strategy that makes it possible to associate arbitrary encoders and decoders with given HTTP response and request content types. An encoder is a...
View ArticleStreaming
Streaming Result Goa makes it possible to define unidirectional server-side streaming where an endpoint can receive a payload and stream a sequence of results. The streamed results are instances of the...
View ArticleHTTP Transport Mapping
Payload to HTTP request mapping The payload types describe the shape of the data given as an argument to the service methods. The HTTP transport specific DSL defines how the data is built from the...
View ArticleGoa Development
Development Setup This document describes the steps required to setup a development environment for contributing to Goa. 1. Install Go The first step is to install the Go distribution. Please follow...
View ArticleGetting Started
This guide walks you through writing a complete service in goa. The simple service implements the basic example found in the GitHub repository. The instructions assume the use of Go modules and as such...
View ArticleGoa v3.0.0
After more than 2 years of work and contributions from 40 different authors, I am really proud to announce the official release of Goa v2 (and v3 see Go Modules Support below). This release includes...
View ArticlePlugins
Goa plugins make it possible to create new DSLs and accompanying generators. They run before rendering the final artifacts which makes it possible to alter the templates exposed by the Goa code...
View ArticleMiddleware
A middleware consists of a function that accepts and returns a endpoint or a transport specific handler. Endpoint Middlewares Endpoint middlewares operate at the endpoint level and are transport...
View ArticleIntroduction
What is Goa? Goa is a Go framework for writing microservices that promotes best practice by providing a single source of truth from which server code, client code, and documentation is derived. The...
View ArticleDesign Overview
The following sections describe how to use the goa DSL to describe services. They provide an overview of the key concepts. Review the GoDocs for a complete reference. API Expression The API function is...
View ArticleGoa v3.0.3
The Goa community has contributed many fixes to Goa as adoption of v3 grows. This release builds on v3.0.1 and v3.0.2 and adds several more fixes. In particular: Nitin Mohan fixed a couple of issues...
View ArticleError Handling
Overview Goa makes it possible to describe precisely the potential errors returned by service methods. This allows for defining a clear contract between the server and its clients that gets reflected...
View ArticleGoa v3.2.0
I am very excited to announce the release of Goa v3.2.0! This release includes a few key improvements as well as many bug fixes. HTTP Cookies v3.2.0 adds native support for HTTP cookies in Goa designs....
View ArticleGoa v3.6.0
Go v3.6.0 is out! There were many bug fixes made in the past 6 months (since 3.5.0), see the complete list on GitHub. v3.6.0 also brings many new features and improvements. New Features Multi-Server...
View ArticleOneOf: Union Attributes in Goa
Goa v3.7.0: Union Attributes in Goa Goa v3.7.0 adds the ability to define union attributes in the Goa DSL. Union attributes enumerate multiple potential attribute values for a single type attribute....
View ArticleImplementing a Goa Service
Overview Once the service design is complete, it is time to run the goa tool to generate the code: goa gen <Go import path of design package> The goa tool creates a gen directory containing all...
View Article