Design de primeira geração de API: GOA

Allan Handan
bawilabs
Published in
2 min readApr 25, 2017

Goa trata-se de um framework que permite, de uma forma simplificada, a construção completa de microservices em Go.

Segundo o site do Goa, são três pontos que podemos destacar nele:

  • Geração de Código: a ferramenta goagen gera vários artefatos, incluindo código, documentação, clientes e até mesmo saídas personalizadas via plugins. O resultado final é o código de aplicação que é limpo e conciso.
  • Baseado em Design: a linguagem de design goa é flexível e permanece fora do caminho — você decide como funciona sua API. O fato da linguagem de design ser Go DSL, torna mais fácil e simples de personalizar e compartilhar.
  • Contexto Poderoso: os request handlers são entregues a um endpoint específico que expõe tanto o estado da request através de campos convenientes quanto o estado da resposta.

Para usar esta ferramenta, é necessário:

  • ter go instalado (se não tiver, clique aqui pra instalar);
  • instalar o goa e goagem executando o comando no terminal:go get -u github.com/goadesign/goa/...

Um tutorial de iniciação na ferramenta pode ser encontrado aqui. Neste tutorial temos um exemplo de um código de design, onde são passadas as características do serviço API, do resource e da media.

Nesse design são informadas várias informações sobre a API, como o nome, título, descrição, scheme (que pode ser http ou https) e o host.

O resource representa os recursos gerenciados pelo sistema, este exemplo representa uma adega virtual, onde gerenciamos garrafas de vinho. Nesta área informamos os atributos do recurso, as ações que representam as requisições que podem ser feitas e a media.

Já na media, são definidos os modelos de view da resposta a uma requisição feita a API.

O Goa utiliza o Goagen para gerar o pacote de códigos do microservice, fornecendo um sistema livre de conflitos e já integrado com a API, além de dois arquivos de documentação do Swagger, sendo swagger.json e swagger.yaml.

Além da API, o Goa fornece a um Client que pode ser executado para fazer requisições.

Sugiro ao leitor que tenha se interessado na ferramenta acesse o tutorial apresentado no link já indicado, pois ele apresenta de maneira simples e mais completa como aplicar e utilizar as funcionalidades da Goa.

Esta foi apenas uma explicação sobre esta ferramenta com potencial para diversas aplicações e que promete facilitar muito a vida dos desenvolvedores de microservices.

--

--