Brincando com uma API simples em Node.js

Victor Feitosa
Training Center
Published in
4 min readAug 28, 2017

API

"API (Application Programming Interface - Interface entre Aplicativo e programação) é um conjunto de instruções e padrões de programação para acesso a um aplicativo de software. Uma empresa de software lança sua API para o público de modo que outros criadores de software possam desenvolver produtos acionados por esse serviço.”

(Tirei isso daqui, tópico bem legal!)

Quando você faz um request para uma API, ela irá retornar (ou não) dados (consulte esta RFC), e não uma página web, por exemplo. Geralmente, esses dados vem na estrutura de JSON ou de XML.

XML e JSON

XML é bem parecido com HTML, principalmente na sintaxe. Dê uma olhada nesse arquivo que peguei da W3(Fools).

Você pode observar que existem tags de abertura e fechamento do nó, semelhantes às tags do HTML. A diferença é que essas tags não representam estruturas de nada. Não existe uma tag dizendo que algo vai estar em itálico ou que algo vai ser o header da página. Tudo que temos são pares de chaves e valores (key-value pairs).

Observe que a tag from tem o valor "Jane", a tag heading tem o valor "Reminder" e assim por diante.

JSON significa JavaScript Object Notation (Notação de Objeto Javascript, numa tradução literal). Ele parece muito com Objetos em Javascript, mas a diferença é que tudo está em forma de string.

Temos um objeto cujo nome é "John Doe", a idade é "3o" e possui três carros. JSON é uma outra maneira de apresentar dados, que é muito popular pois você não precisa convertê-lo para o JavaScript interpretá-lo.

https://insights.stackoverflow.com/trends?tags=json%2Cxml

Observe o gráfico da popularidade de tags no StackOverflow e veja como o JSON está subindo.

Por sua grande facilidade de uso, atualmente a grande maioria das APIs retornam dados no formato JSON hoje em dia.

Neste link, você pode visualizar vários exemplos de JSON e sua representação equivalente em XML. Vale a pena dar uma olhada.

Utilizando esta extensão no Chrome, a visualização do JSON é facilitada e você consegue colapsar/expandir os nós dos objetos.

Fazendo Requests no Node.js

Chegou a hora de colocar a mão na massa e fazer requisições para uma API usando Node.js. Nos tópicos a seguir, faremos chamadas para uma API que nos fornece dados climáticos.

Primeiramente, abra o Terminal e crie um diretório chamado "APItest". Em seguida, crie um arquivo chamado requestTest.js:

$ mkdir APItest$ cd APItest$ touch requestTest.js

Agora abra o arquivo no seu editor de texto preferido. No meu caso, utilizo o Sublime Text.

$ subl requestTest.js

Pra fazer as requests com o Node, vamos utilizar uma biblioteca chamada Request. Para utilizá-la, temos que fazer a instalação. No seu terminal, digite:

$ npm install request

Caso algum erro de permissão seja apresentado, sugiro que você leia este artigo do William Oliveira.

Agora, copie o trecho de código apresentado no README do repositório para o nosso arquivo requestTest.js.

Explicando brevemente o código acima:

Na variável request, fazemos o require do módulo "request". Esta é a forma como devemos chamar bibliotecas no Node.js. Você pode ler mais sobre isso aqui.

Na linha seguinte, estamos fazendo uma request para o Google.com e temos uma função com três parâmetros dentro. O parâmetro error vai cuidar de erros que possam acontecer durante essa request, como o servidor estar fora do ar ou não termos internet, por exemplo. O parâmetro response é a resposta do servidor, que vai indicar se está tudo nos conformes. O parâmetro body é o corpo da resposta. Neste caso, será o próprio HTML do Google.

Agora, volte ao terminal e digite:

$ node requestTest.js

Se tudo estiver certo, você verá uma string gigante enchendo o seu terminal. Experimente substituir o Google por outros sites no arquivo e veja o resultado :)

Agora, vamos fazer uma request para uma API. Para isso, vamos usar essa API. Ela é gratuita, porém você precisa se cadastrar para pegar uma key e poder utilizá-la. Nesse exemplo, vamos fazer uma chamada para ver qual a temperatura na cidade de São Paulo.

Você pode dar uma lida na documentação da API e verá que podemos fazer uma chamada de várias formas diferentes, mas a que utilizaremos agora é a que busca as informações pelo nome da cidade, o que fica algo mais ou menos assim:

http://api.openweathermap.org/data/2.5/weather?q=SaoPaulo&APPID=YOUR_KEY

Troque o www.google.com do seu código por esse endereço e salve o arquivo. Em seguida, rode o comando no terminal:

$ node requestTest.js

Lembra que eu disse que o JSON é uma string? Precisamos transformá-lo em um objeto. Para isso, temos que fazer o parse dessa string. O javascript já tem uma função que faz isso para nós: JSON.parse. Vamos fazer a chamada e atribuir esse objeto a uma variável. Agora, poderemos acessar os atributos do objeto normalmente.

Código final do arquivo

Agora, no seu terminal, ao rodar o comando node requestTest.js, será apresentada a temperatura atual da cidade de São Paulo.

Bom, por hoje é isso! Espero que tenha sido útil e que você se aprofunde em seus estudos sobre Node.js. Foi muito legal fazer esse artigo e pretendo fazer outros artigos com exemplos mais complexos usando APIs futuramente.

Se esse post foi útil pra você ou você acha que ele pode ser útil para alguém, deixe seus "aplausos" e compartilhe nas suas redes sociais.

--

--