Primeiro poste sobre como criar uma rest api usando nodejs e banco sqlite

Vamos desenvolver uma api rest para armazenar e manuseia uma lista de tarefas, usando javascipt nessa série de post. Usaremos o micro-framwork express e o nosso drive de banco de dados será o sqlite. vamos faze-la simples só para apresentar os conceitos do que está envolvido em uma rest api e a runtime NodeJs.

O que é o NodeJS? é uma runtime que roda a linguagem javascript no backend foi desenvolvido Ryan Dahl em 2009. Pegou o motor (engine) do chrome e adicionou a lib uv, criando assim um ambiente que execute o seu código javascript no lodo do servidor (server side).

Poderíamos falar sobre diversos assunto que envolve o NodeJs, porém estaríamos fugindo do nosso assunto. Caso queira saber mais sobre o nodeJS pode escrever nos comentários que posteriormente estárei escrevendo sobre cada um dos tópicos pedidos.

Antigamente desenvolvíamos um site em apenas em um local o backend e o fronend era apenas um projeto, hoje é no mínimo dois. porque o backend dividiu para micro serviços e o frontend para micro frontend. podemos desacoplar grandes monolitos para pequenas funcionalidades facilitando o reuso do código.

Uma api é uma interface de comunicação entre sistema não necessariamente precisa ser um sistema web. A Bios, o Sistema operacional, algum aplicativo podem conter uma api. Quando estamos no ambiente web possuímos rest e restfull ambas usam o protocolo de comunicação http ou https.

Posteriormente estarei abordando melhor a teoria quero começar a desenvolver e no próximo post vamos aprender o que é uma rest e restfull.

Criando o nosso projeto

Instalando o nodejs

Você pode acessar o site do node e baixar a versão mais recente. link do site Eu estou usando a versão 16.15.0. Pode usar o gerênciador de versão do NodeJs para instalar em sua máquina, usando NVM ou ASDF.

Instalando o gerenciado de depedência Yarn

para instalar pode usar o npm ou acesse o site deles para obter mais informação. A versão do yarn 1.22.18.

$ npm i -g yarn
$ # caso esteja usando linux tem de usar o sudo antes do comando npm.

Iniciando o seu projeto

Criando uma pasta para a sua rest api

$ mkdir todo-api

Iniciando o nosso projeto usando o yarn

$ # setando as configurações padrões no nosso projeto
$ yarn init -y

Quando você terminar de executar o comando a cima vai criar um arquivo chamado package.json. Que tem a finalidade de controlar as depedência do seu projeto. Feito isso, vamos começar a instalar as nossas dependência que a princípio só será uma que é o express.

$ # Instalando o express
$ yarn add express

Quando você terminar de instalar o express, vai aparecer uma arquivo chamado yarn.lock e uma pasta com as suas depedências baixadas.

Agora vamos criar um arquivo que vai ser temporiariamente a nossa api. o nome de index.js que pode cria-lo na raiz do projeto.

const express = require('express');
const crypto = require('crypto');

const app = express()
app.use(express.json())

const todos = []
app.post('/todo', (req, res) => {
    const { title, description } = req.Body
    const todo = {
        id: crypto.randomUUID(),
        title,
        description
    };
    todos.push(todo);
    return res.json(todo);
});
app.get('/todo', (req, res) => {
    return res.json(todos);
});
app.put('/todo', (req, res) => {
    // implementar depois
});
app.delete('/todo', (req, res) => {
    // implementar depois
});

app.listen(3333)

Agora abra o arquivo packege.json e adicione uma chave nesse objeto com o nome de scripts que vamos adicionar um comando para executar a nossa api. que será assim.

...
"scripts": {
    "dev": "node index.js"
}
$ # executar o código
$ yarn dev

Depois de ter feito isso execute e veje a resposta no seu navegador no link localhost:3333

Até agora vimos o que é uma api e como inciar uma usando a linguagem javascript. o próximo episódio vamos esclarecer o que é uma api rest e restfull. além dessa parte terica vamos aprender como podemos usar as rotas da nossa api.

Parabéns!

Curti bastante seu post simples e direto, estou gostando desse TabNews