Tabela de Conteúdos
HTTP
O que é?
É o protocolo mais utilizado na web para a comunicação entre cliente e servidor.
O que faz?
Carrega informações cliente -> servidor / servidor -> cliente
, sendo possível alterar o modo de envio através dos métodos HTTP, onde cada método possui seu significado semântico e diz para o servidor realizar uma ação diferente.
Principais métodos
Existem ao todo 39 métodos diferentes, porém os 5 principais são:
-
GET
: Requisita uma informação ao servidor -
POST
: Cria uma nova informação no DB -
PUT
: Atualiza completamente uma informação no DB -
DELETE
: Deleta uma informação no DB -
PATCH
: Atualiza parcialmente uma informação no DB
Maiores detalhes
Para mais detalhes recomendo a leitura da documentação da MDN.
E recomendo os seguintes sites para consulta de status HTTP:
- HTTP Status MDN
- HTTP Status Dogs ou HTTP Dogs Para quem gosta de cachorros.
- HTTP Cats Para quem gosta de gatos
APIs
O que são?
São quaisquer aplicações que permitam a comunicação programática entre diferentes serviços. Enfatizando que, APIs não se restringem apenas a Web, existem APIs para comunicação com Desktop, Mobile e SO (Sistema Operacional).
O que fazem?
Permite a pessoa desenvolvedora construir soluções integradas utilizando determinadas APIs como peças intermediárias, dessa forma não é necessário por exemplo, programar a parte de manipulação de arquivos no SO, pois o Node.js já possui tal API integrada.
API + HTTP
A maior parte das APIs da Web são APIs HTTP, ou seja, aplicações que se comunicam através de protocolos HTTP. Normalmente essas aplicações adotam a versão 1.1 do protocolo, pois nessa versão tem-se uma preocupação maior em relação à semântica dos métodos.
Porém não é obrigatório que todas as API sigam esse modelo, APIs não relacionadas a Web, como fetch API e File System API, que são integradas ao Node.js por exemplo, não utilizam o protocolo HTTP.
Express
O que é?
É um framework criado para facilitar a criação de APIs HTTP, ele foi construído pensando no padrão REST, porém o Express não impõe nenhum padrão de desenvolvimento.
O que faz?
O Express fornece diversos recursos e abstrações úteis na hora de desenvolver uma API HTTP, facilitando o trabalho de desenvolvimento.
API com Express
Como fazer?
Para a criação de uma API utilizando o Express precisamos apenas de três coisas, primeiro precisamos estar trabalhando dentro de um módulo Node, segundo precisamos ter o Express instalado e por fim iremos utilizar alguns métodos do framework para a criação da aplicação.
Comandos
Dentro de uma pasta precisamos inicializar um módulo Node, após isso instalamos o Express e por fim criamos o arquivo que irá conter a API. Respectivamente os comandos são:
npm init -y
npm i express
touch index.js
Estrutura básica
Dentro de nosso arquivo JS podemos utilizar a seguinte estrutura para criar uma API simples.
// index.js
const express = require('express');
const api = express();
api.get('/', (_req, res) => {
res.status(200).send('Hello World');
});
api.listen(3001, () => {
console.log('Server is running on port 3001');
});
E para executar nossa primeira API utilizamos o comando:
node index.js
Podemos substituir o index.js
pelo nome do arquivo que contém o código acima, porém o mais comum é esse arquivo se chamar index.js
ou server.js
.
Curiosidade: API sem o Express
Apenas para ilustrar o quanto o Express facilita a vida, vou demonstrar a mesma API vista acima utilizando apenas recursos nativos do Node.js.
const http = require("http");
const url = require("url");
http.createServer((req, res) => {
const path = req.url;
if (path === '/') {
res.writeHead(200, {"Content-Type": "text/html;charset-utf-8"});
res.end('Hello World');
}
}).listen(3001, (err) => {
if (err) {
console.log(err);
} else {
console.log("Server is running on port 3001");
}
})
Nodemon
O que é?
É um pacote que nos disponibiliza o hot-reload do servidor, ou seja, o servidor irá reiniciar automaticamente sempre que sofrer uma alteração, de forma similar ao que ocorre no React.
Lembrando que caso não utilizemos esse pacote, será necessário reiniciar a aplicação manualmente toda a vez que modificamos algo.
Instalação
Por ser um pacote focado no hot-reload, seu uso deve ser feito exclusivamente em ambiente de desenvolvimento, assim como sua instalação. Afinal não iremos precisar de tal funcionalidade no ambiente de produção.
npm i -D nodemon
Utilização
Para utilizarmos esse pacote é muito simples, tudo o que precisamos fazer é criar um novo script no package.json
, esse que pode ser nomeado da forma que preferirmos, porém uma recomendação é nomear como "dev"
.
Esse script irá conter o comando nodemon
e o path até seu arquivo de entrada da aplicação, normalmente irá estar na raiz do projeto, ou dentro do diretório src/
.
"scripts": {
"dev": "nodemon index.js"
},
Com o script definido, tudo que nos resta fazer é executá-lo, para isso chamamos o comando:
npm run dev
npm run #nome do script
Top comments (5)
No http.dog ?? :(
Hi Fili, i didn't use the http.dog specifically, but the httpstatusdogs.com, to be honest I didn't know the http.dog.
But I will make a mention, after all the more reference the better!
indeed!
Legal o resumo, parabéns.
Leagl ver o código nativo, mas ele ficou maiorzinho pq tem tratativa de erro tbm né. =)
Muito obrigado! Em uma api simples é só o tratamento de erro que deixa o código um "tiquinho" maior, mas se fosse adicionar outras rotas seria um amontado de if/else, ou no melhor dos casos, um switch/case.