Node JS
Introdução a API - Interface de Programação de Aplicações
API é a sigla para Application Programming Interface. É um conjunto de regras, protocolos e ferramentas que permite que diferentes softwares se comuniquem entre si, permitindo a troca de dados e a realização de operações específicas. Em termos simples, uma API define como os componentes de software devem interagir entre si.
Ela fornece um conjunto de métodos padronizados que um desenvolvedor pode usar para acessar os recursos ou funcionalidades de um sistema ou serviço, sem precisar entender todos os detalhes internos de sua implementação. Isso facilita a integração de sistemas e permite que desenvolvedores criem novas aplicações que se beneficiem dos recursos de outras plataformas ou serviços.
As APIs são essenciais para a construção de sistemas complexos e para a integração de diferentes tecnologias. Elas são amplamente utilizadas em diversas áreas, como desenvolvimento web, aplicativos móveis, computação em nuvem, Internet das Coisas (IoT), entre outras.
Normalmente todas as respostas são em JSON, não necessitando de interfaces desenvolvidas no front para usar elas. Com o NodeJS, podemos usar o Express para criar uma API.
REST
APIs REST (Representational State Transfer) e RESTful são abordagens para projetar e desenvolver interfaces de programação web que seguem os princípios do estilo arquitetural REST. O REST é um estilo arquitetural para projetar sistemas de software distribuídos, especialmente sistemas de hipermídia, como a World Wide Web. Ele enfatiza a escalabilidade, a simplicidade e a independência de componentes, o que o torna uma abordagem popular para o desenvolvimento de APIs web.
APIs REST são baseadas em quatro conceitos principais:
Utilização dos métodos HTTP, como GET, POST, PUT e DELETE, para realizar operações em recursos.
Uso de URLs (Uniform Resource Locators) para identificar recursos específicos.
Transferência de dados entre cliente e servidor em um formato padrão, geralmente JSON.
Manutenção do estado da aplicação no cliente, em vez de armazená-lo no servidor.
Já o RESTful é um termo usado para descrever sistemas ou serviços que seguem os princípios do REST. Um serviço RESTful é aquele que adere aos princípios de design do REST, incluindo a utilização de métodos HTTP de forma consistente, identificação de recursos por URIs e a utilização de representações de estado. Em resumo, REST é um estilo arquitetural para sistemas distribuídos, enquanto RESTful descreve sistemas ou serviços que adotam esse estilo, seguindo os princípios definidos pelo REST. APIs RESTful são comumente usadas para construir sistemas web que são escaláveis, flexíveis e fáceis de entender e manter.
SPA
SPA ou Single Page Application é uma aplicação web que possui um frontend separado do backend. Ela carrega dinamicamente todo o conteúdo da página em uma única página web, sem a necessidade de recarregar a página inteira durante a interação do usuário. Em uma SPA, o conteúdo é atualizado de forma assíncrona, geralmente utilizando JavaScript para manipular o DOM (Document Object Model) e interagir com um servidor por meio de chamadas de API. Isso cria uma experiência de usuário mais fluida, similar a um aplicativo desktop, onde as transições entre as diferentes partes da aplicação são rápidas e suaves.
Métodos HTTP
Os métodos HTTP, também conhecidos como verbos HTTP, são comandos que indicam a ação que está sendo solicitada para ser realizada em um recurso específico em um servidor. Eles são usados em solicitações HTTP para indicar a natureza da operação que está sendo realizada no recurso identificado pela URL. Os principais verbos HTTP incluem:
GET: Solicita a representação de um recurso específico. É usado para recuperar dados do servidor. Por exemplo, ao digitar uma URL no navegador, uma solicitação GET é enviada para recuperar a página web correspondente.
POST: Envia dados para o servidor para criar um novo recurso. É comumente usado para enviar dados de formulário para o servidor ou para enviar dados para serem processados e armazenados.
PUT: Atualiza um recurso existente no servidor com os dados fornecidos. Geralmente, é usado para atualizar completamente um recurso.
PATCH: Atualiza parcialmente um recurso existente no servidor. Ele envia apenas os dados que precisam ser alterados, em vez de enviar todos os dados do recurso.
DELETE: Remove um recurso específico do servidor. É usado para excluir recursos existentes.
HEAD: Solicita apenas os cabeçalhos de resposta de um recurso, sem a carga útil de dados. É útil para verificar a existência de um recurso e obter informações sobre ele sem baixar todo o conteúdo.
OPTIONS: Solicita informações sobre as opções de comunicação disponíveis para um recurso, como os métodos HTTP suportados ou os cabeçalhos aceitos.
Esses são os principais verbos HTTP, cada um com uma função específica na comunicação entre clientes e servidores web. Eles permitem uma variedade de operações para recuperar, criar, atualizar e excluir recursos em servidores web, formando a base da arquitetura RESTful comumente usada na web moderna.
Postman
O Postman é uma plataforma de colaboração para o desenvolvimento de APIs. Ele oferece uma ampla gama de recursos que permitem aos desenvolvedores criar, testar, documentar e compartilhar APIs de maneira eficiente.
Criando uma API Simples
Precisamos instalar o Express
, depois criar uma rota que responde em JSON, para isso é importante definir sempre o método HTTP correto.
# Crie um projeto:
npm init -y
# Instale o express e o nodemon
npm install express nodemon
// acesso via browser
const express = require('express')
const app = express()
app.use(
express.urlencoded({
extended: true,
}),
)
app.use(express.json())
// Criando uma rota usando GET
app.get('/', (req, res) => {
res.json({ message: 'Primeira rota criada com sucesso!' }) // responde um json | 'message' é a chave e o texto é o valor da chave
})
app.listen(8080)
Criando uma API com Postman
Precisamos primeiro baixar o Postman
, para isso visite a página oficial. Depois de instalar, crie um novo diretório diretamente pelo Postman, para criarmos um teste da nossa API (vamos usar o postman para testar a API).
// acessar http://localhost:8080/createproduct
const express = require('express')
const app = express()
app.use(
express.urlencoded({
extended: true,
}),
)
app.use(express.json())
app.post('/createproduct', (req, res) => {
const name = req.body.name
const price = req.body.price
console.log(name)
console.log(price)
res.json({ message: `O produto: ${name} foi criado com sucesso!` })
})
app.get('/', (req, res) => {
res.json({ message: 'Primeira rota criada com sucesso!' })
})
app.listen(8080)