O que é o Tesla

O Tesla é um cliente HTTP. Isso significa que ele consegue fazer requisições HTTP para outros serviços, obter a resposta e trata-la.

Vamos a um exemplo prático. Nos precisamos de uma lista de cafés quentes para mostrar para nosso usuário. O problema é que não queremos ter que alimentar uma base de dados para isso. Para isso, podemos utilizar um serviço que já tenha os dados.

O endpoint que usaremos é o https://api.sampleapis.com/coffee/hot e você pode abrir ele diretamente do browser, uma vez que ele usa o método GET.

Temos a lista de cafés e não levou nem um minutos para ver o resultado. A minha pergunta agora é, como colocar isso em seu código. Precisamos de um cliente HTTP para se comunicar com o serviço.

Um cliente HTTP significa que ele se comunica utlizando requisições HTTP. Esse link que fiz vocês abrirem é uma requisição HTTP do verbo GET para o endpoint especificado.

Em elixir, temos algumas bibliotecas que podemos utilizar. Se você entrar no hex.pm e procurar por HTTP, vários bibliotecas irão aparecer, como o mint, hackney, fintch, gun, tesla, req, etc.

Eu utilizarei o Tesla pela simplicidade.

Para ele funcionar realizar a requisição ao serviço que estamos querendo conectar, basta fazer isso.

Com isso, temos a resposta programaticamente. Isso quer dizer que posso fazer o que eu quiser com esse código. Claro, Tesla trás trambém os headers, status, body e url para termos tudo em nossas mãos e fazer um bom trabalho com isso.

Com isso deve ter ficado claro o que é o cliente http e porque utilizaremos Tesla. Agora, vamos por a mão na massa.

Atualizado

Isto foi útil?