API com a plataforma loopback da IBM
A framework LoopBack da IBM permite a criação de uma API, e funciona como um assistente de criação da API em causa. Esta framework facilita o desenvolvimento da API, uma vez que permite definir um modelo de dados, interligar a API com bases de dados, criar controladores, etc.
Para desenvolver a API necessitamos do Node.js instalado no computador.
O primeiro passo é abrir o cmd, abrir o diretório onde pretendemos trabalhar, e instalar o LoopBack 4, através do comando:
npm i -g @loopback/cli
Quando a instalação estiver concluída, vamos criar o scaffolding da nossa API, e para tal, executamos o comando:
lb4 app
Devemos completar até ficar com um output semelhante ao seguinte:
De seguida, no cmd, entramos dentro do diretório que foi criado ao executar o comando acima.
Agora, para criar um Model, basta executar:
lb4 model
Preenchemos até ficar com o seguinte output:
Para adicionar o Datasource, escrevemos o seguinte comando:
lb4 datasource
De seguida, preenchemos as questões da seguinte maneira:
O próximo passo é criar um diretório designado por “data”, e dentro do mesmo, criamos um ficheiro db.json e inserimos lá o seguinte código:
{
"ids": {
"Todo": 5
},
"models": {
"Todo": {
"1": "{\"title\":\"Take over the galaxy\",\"desc\":\"MWAHAHAHAHAHAHAHAHAHAHAHAHAMWAHAHAHAHAHAHAHAHAHAHAHAHA\",\"id\":1}",
"2": "{\"title\":\"destroy alderaan\",\"desc\":\"Make sure there are no survivors left!\",\"id\":2}",
"3": "{\"title\":\"play space invaders\",\"desc\":\"Become the very best!\",\"id\":3}",
"4": "{\"title\":\"crush rebel scum\",\"desc\":\"Every.Last.One.\",\"id\":4}"
}
}
}
Neste momento, vamos criar um Repository, executando o comando:
lb4 repository
E preenchemos as questões da seguinte maneira:
Para criar um Controller, corremos o comando:
lb4 controller
E preencher da seguinte maneira:
Para finalizar os comandos no cmd, executamos o comando:
npm start
Esperamos até nos aparecer um URL, como o seguinte:
Server is running at http://127.0.0.1:3000
No browser, abrimos o link: http://127.0.0.1:3000/explorer/. Irá aparecer um output como este:
Aqui estão alguns testes que podemos fazer:
- POST /todos, com: { “title”: “get the milk” }
- GET /todos/{id}, usando o ID que recebemos no Post, e ver que a API devolveu o objeto Todo.
- PATCH /todos/{id}, usando o mesmo ID, com: { “desc”: “need milk for cereal” }