Introdução
O desenvolvimento moderno de software tem impulsionado a necessidade de arquiteturas reativas e microserviços que proporcionem escalabilidade e resiliência. O Ballerina se destaca como uma linguagem projetada especificamente para lidar com esses paradigmas, oferecendo uma sintaxe concisa e diversas funcionalidades para integração com APIs. Neste guia prático, você aprenderá a construir microserviços reativos utilizando o Ballerina, abordando desde a configuração inicial do ambiente até a criação de serviços que se comunicam com APIs comuns. Abordaremos também testes unitários e boas práticas, permitindo que você desenvolva aplicações robustas e escaláveis. Este tutorial é ideal para desenvolvedores que desejam explorar o potencial do Ballerina na construção de soluções modernas e eficazes.
Etapas
Configuração do Ambiente de Desenvolvimento
Para iniciar o desenvolvimento com Ballerina, primeiro você precisa configurar o ambiente de desenvolvimento. Certifique-se de ter o JDK 8 ou superior instalado em sua máquina. Além disso, faça o download do Ballerina Toolkit a partir do site oficial. Após o download, siga as instruções para instalação.
commands# Verificar versão do Java
java -versionCriando um Novo Projeto Ballerina
Utilize o Ballerina CLI para criar um novo projeto. Execute o comando abaixo no seu terminal. Isso criará uma estrutura básica de projeto com um arquivo de configuração e um arquivo de serviço.
commandsballerina new microservice-exampleDefinindo o Serviço Ballerina
Navegue até o diretório do seu novo projeto e, em seguida, abra o arquivo `service.bal` no diretório `src/main/ballerina`. Aqui, você definirá um serviço simples que responderá a requisições HTTP GET. Este serviço simulará uma chamada para um endpoint de API.
service.balimport ballerina/http; service /api on new http:Listener(8080) { resource function get hello() returns json { return { message: "Hello, Ballerina!" }; } }Executando o Serviço Ballerina
Com o serviço definido, você pode agora executá-lo. No terminal, no diretório do seu projeto, use o comando a seguir para iniciar o serviço. Isso fará com que seu serviço comece a escutar na porta 8080.
commandsballerina run src/main/ballerina/service.balTestando o Serviço com cURL
Após iniciar o serviço, você pode testá-lo utilizando cURL. Abra outra janela do terminal e execute este comando para fazer uma requisição GET ao seu serviço. Você deverá receber uma resposta JSON.
commandscurl http://localhost:8080/api/helloIntegrando com uma API Externa
Para demonstrar a integração com uma API externa, vamos modificar nosso serviço para chamar uma API pública, como a API JSONPlaceholder. Atualize seu serviço para buscar dados de um recurso específico.
service.balimport ballerina/http; http:Client jsonPlaceholder = check new http:Client("https://jsonplaceholder.typicode.com"); service /users on new http:Listener(8080) { resource function get details() returns json { json response = check jsonPlaceholder->get("/users"); return response; } }Testando a Integração com a API Externa
Novamente, utilize cURL para testar a nova funcionalidade que integra a chamada para a API externa. Acesse o novo recurso que você criou e veja os dados retornados.
commandscurl http://localhost:8080/users/detailsImplementando Testes Unitários
Para garantir que nosso serviço funcione corretamente, devemos implementar testes unitários. Você pode usar o framework Ballerina Test para isso. Crie um novo arquivo de teste no diretório `test/` com o seguinte código que valida a resposta do seu serviço.
test_service.balimport ballerina/http; import ballerina/test; @test:Config {} service function testHelloService() returns error? { http:Client client = check new http:Client("http://localhost:8080"); var response = client->get("/api/hello"); test:assertEqual(response.json().message.toString(), "Hello, Ballerina!"); }Executando os Testes
Agora, você deve executar os testes implementados para garantir que tudo funcione como esperado. Utilize o comando a seguir no seu terminal para rodar os testes unitários.
commandsballerina test
Conclusão
Neste tutorial, você aprendeu a construir um microserviço utilizando o framework Ballerina, desde a configuração do ambiente até a implementação de um serviço que chama uma API externa e a criação de testes unitários. Explorando suas funcionalidades, você poderá desenvolver aplicações reativas e escaláveis que atendem às demandas modernas do mercado. Com essa base, sinta-se à vontade para experimentar mais recursos do Ballerina e criar serviços ainda mais complexos.
