Goa takes a different approach to building services by making it possible to describe the design of the service API using a simple Go DSL. Goa uses the description to generate specialized service helper code, client code and documentation. Goa is extensible via plugins, for example the goakit plugin generates code that leverage the Go kit library. The service design describes the transport independent layer of the services in the form of simple methods that accept a context and a payload and return a result and an error. The design also describes how the payloads, results and errors are serialized in the transport (HTTP or gRPC). For example a service method payload may be built from an HTTP request by extracting values from the request path, headers and body. This clean separation of layers makes it possible to expose the same service using multiple transports. It also promotes good design where the service business logic concerns are expressed and implemented separately.

Features

  • The Goa tool accepts the Go design package import path as input
  • Produces the interface as well as the glue that binds the service and client code with the underlying transport
  • The tool generated the main functions for two commands
  • The generated code validates the command line arguments against the types defined in the design
  • The http directory contains OpenAPI 2.0 and 3.0 specifications in both YAML and JSON format
  • The goa.design website provides a high level overview of Goa and the DSL

Project Samples

Project Activity

See All Activity >

Categories

Frameworks

License

MIT License, Apache License V2.0

Follow Goa

Goa Web Site

You Might Also Like
The all-in-one billing and claims management software designed to get your practice paid fast and efficiently. Icon
Open Practice is pleased to present OpenPM, our cloud-based RCM platform that has propelled the company through 17 consecutive years of double-digit growth. OpenPM connects all the disparate elements of the revenue cycle including; Scheduling & Registration, Billing, Clearinghouse, and Patient Payments/Collections. The result is highly automated accounts receivables management for optimized cash flow, and extensive reporting to help you proactively manage your organization. All of this control is securely hosted and delivered through the browser you already have, providing the perfect combination of security and availability.
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of Goa!

Additional Project Details

Operating Systems

Linux, Mac, Windows

Programming Language

Go

Related Categories

Go Frameworks

Registered

2023-01-09