Ballerina HTTP Client na prática

Ballerina HTTP Client na prática

Faz algum tempo que Ballerina foi disponibilizada para os desenvolvedores, encantando-os com conceitos simples e práticos. Algumas rotinas que já são feitas há tempos em outras linguagens e frameworks ganharam novas perspectivas dentro da lógica "cloud native" da plataforma.

A principal mudança talvez seja a maneira que serviços e clientes se relacionam dentro da aplicação.

Com uma linguagem orientada ao consumo de serviços através da rede, Ballerina faz uma abstração bastante singular do uso de aplicações distribuídas. A linguagem utiliza uma definição de serviço (service) e cliente (client) para a definição de recursos de rede, e sua utilização é bem simples.

Neste artigo, você pode entender um pouco melhor a definição de um client e os recursos ele oferece.

Client proposto

O client proposto para esse exemplo deve buscar dados de uma lista de usuários do Github e compará-los, para ver quem tem mais repositórios públicos dentro da plataforma.

Começando de maneira simples, é necessário criar um client para consultar os dados de um usuário do Github.

Escreva a legenda e créditos da imagem

Escreva a legenda e créditos da imagem

Escreva a legenda e créditos da imagem

Escreva a legenda e créditos da imagem

Parece um exemplo simples, mas por ele é possível perceber a orientação a serviços distribuídos da linguagem. Veja algumas características importantes desse código:

Relações entre sistemas

Primeiro, "github", é um Http:Client que possui métodos remotos, como "get", que descrevem as interações entre os serviços. A linguagem representa em sua sintaxe a natureza dessa relação entre sistemas e isso fica evidente quando utilizamos os diagramas de sequência de Ballerina.

Diagramas de sequência

Os diagramas de sequência são um recurso nativo da linguagem que permitem uma visão gráfica da função. Usando o plugin oficial do Ballerina para VSCode, fica fácil ver o diagrama do exemplo:

Escreva a legenda e créditos da imagem

Escreva a legenda e créditos da imagem

A relação entre sistemas pode ser vista no diagrama, identificando uma chamada para o método remoto "get". 

Foco em JSON

Outra característica interessante é o formato da resposta. Ballerina é focada em JSON, o que simplifica muito a manipulação dos payloads obtidos através de um client. É possível definir estruturas mais específicas para os responses:

Escreva a legenda e créditos da imagem

Escreva a legenda e créditos da imagem

Isso é suficiente para Ballerina fazer a conversão do response para o tipo criado. Veja como é refletido no diagrama de sequência:

Escreva a legenda e créditos da imagem

Escreva a legenda e créditos da imagem

Esse primeiro passo mostra como é fácil descrever um client e, consequentemente, a relação por completo entre sistemas distribuídos.

Agora é possível seguir o desenvolvimento da proposta.

Múltiplas chamadas

O próximo passo é incluir uma lista de usuários e buscar dados de todos eles.

Agora existe um loop, uma sequência de uso do cliente, o que muda ligeiramente o diagrama anterior.

Escreva a legenda e créditos da imagem

Escreva a legenda e créditos da imagem

O diagrama deixa bem clara a relação dos fluxos da aplicação com os serviços remotos e reflete a proposta da plataforma. Esses e outros recursos trazem todos os conceitos, que geralmente são abstraídos dentro das linguagens, para a superfície do processo.

Em um momento em que arquiteturas distribuídas e integrações reinam, uma linguagem especializada nestes aspectos tende a contribuir muito para a qualidade e velocidade das entregas dos produtos.


Quer escrever na Prensa?

Junte-se a uma comunidade de Creators que estão melhorando a internet com artigos inteligentes, relevantes e humanos. Além disso, seu artigo pode fazer parte do Projeto de Monetização, e você pode ganhar dinheiro com ele!

Clique aqui para se cadastrar e venha com a gente!


Topo