
Compartilhar:
Educador de tecnologia com um jeito amigável, pai de família, defensor da diversidade, provavelmente discuto um pouco demais. Ex-engenheiro de backend. Fale comigo sobre JavaScript (front-end ou back-end), o incrível Vue.js, DevOps, DevSecOps e tudo relacionado ao JamStack. Escritor no DEV.to
5 maneiras de criar uma API em Node.js
Este artigo vai te ajudar a criar uma pequena API de cinco maneiras diferentes, usando Node.js e quatro frameworks populares.
Express.js é uma das muitas estruturas HTTP disponíveis para o Node.js. Nós o utilizamos em muitos dos nossos conteúdos do Node.js , devido à grande variedade de complementos e à sua ampla comunidade de suporte.
As semelhanças na implementação da mesma funcionalidade em diferentes frameworks podem ajudar a esclarecer algumas questões ao implementar uma de nossas demonstrações em um framework diferente daquele apresentado no tutorial. Espero que sim.
Express.js
Vamos começar com o que já conhecemos. O Express.js é um framework leve e “neutro” para a criação de aplicativos web e móveis .
Criar um servidor
Crie um diretório de projeto usando seu IDE ou este comando.
Crie um arquivo para seu aplicativo (geralmente app.js ou index.js).
Inicialize o projeto com o NPM gerando arquivos básicos de pacotes NPM sem precisar responder a nenhuma pergunta com a y opção.
Instale o pacote Express.js .
Modifique index.js e adicione o seguinte código-fonte para criar seu aplicativo e a example rota.
// index.js
const express = require('express')
const app = express()
const port = process.env.PORT || 3000
app.get('/example', (req, res) => {
res.json({ message: 'Looks good to me!' })
})
app.listen(port, () => {
console.log(`listening on port ${port}`)
})
Executar o servidor
Inicie o aplicativo usando a node linha de comando. Talvez você esteja acostumado a npm start que, em muitos casos, simplesmente executa esse comando no arquivo do seu aplicativo de qualquer maneira.
Agora você pode fazer uma solicitação usando o Postman para ver a resposta.

Bibliotecas padrão do Node.js
O Node.js possui pacotes integrados capazes de escutar solicitações HTTP e construir respostas. As outras estruturas simplificam esse processo, além de oferecerem diversos outros recursos que, de outra forma, você teria que desenvolver.
Criar um servidor
Crie um diretório de projeto usando seu IDE ou este comando.
Crie um arquivo para seu aplicativo (geralmente app.js ou index.js).
Não precisamos inicializar o NPM até o momento em que precisarmos instalar pacotes. Para este exemplo, usaremos pacotes integrados ao Node.js , então não precisamos do NPM nem de nenhum arquivo de pacote (🎉🎉🎉 E SEM node_modules DIRETÓRIO 🎉🎉🎉).
Modifique index.js e adicione o seguinte código-fonte para criar seu aplicativo e a example rota.
// index.js
const http = require('http')
const port = process.env.PORT || 3000
const requestHandler = (req, res) => {
if (req.url === '/example' && req.method === 'GET') {
res.writeHead(200, { 'Content-Type': 'application/json' })
res.end(JSON.stringify({ message: 'Node.js only: Looks good to me!' }))
} else {
res.writeHead(404, { 'Content-Type': 'application/json' })
res.end(JSON.stringify({ message: 'Not found!' }))
}
}
const server = http.createServer(requestHandler)
server.listen(port, () => {
console.log(`listening on port ${port}`)
})
Executar o servidor
Inicie o aplicativo usando a node linha de comando.
Agora você pode fazer uma solicitação usando o Postman para ver a resposta.

Koa.js
Koa.js, desenvolvido pelos mesmos desenvolvedores responsáveis pelo Express.js, foi criado para ser mais leve e expressivo, permitindo um código mais conciso e melhorando significativamente o tratamento de erros. Por isso, ele vem com menos recursos integrados e um amplo conjunto de extensões da comunidade.
Criar um servidor
Crie um diretório de projeto usando seu IDE ou este comando.
Crie um arquivo para seu aplicativo (geralmente app.js ou index.js).
Inicialize o projeto com o NPM gerando arquivos básicos de pacotes NPM sem precisar responder a nenhuma pergunta com a y opção.
Instalar Koa.js e os pacotes de suporte para roteamento e envio de respostas JSON. Observação: O Koa não oferece suporte a roteamento (além das condições de URL) nem a respostas JSON sem um pacote adicional.
Modifique index.js e adicione o seguinte código-fonte para criar seu aplicativo e a example rota.
// index.js
const Koa = require('koa')
const Router = require('@koa/router')
const json = require('koa-json')
const app = new Koa()
const router = new Router()
const port = process.env.PORT || 3000
app
.use(router.routes())
.use(router.allowedMethods())
.use(json({ pretty: false }))
router.get('/example', (ctx) => {
ctx.body = { message: 'Koa.js: Looks good to me!' }
})
app.listen(3000)
Executar o servidor
Inicie o aplicativo usando a node linha de comando.
Agora você pode fazer uma solicitação usando o Postman para ver a resposta.

Restify
Restify é um framework do Node.js otimizado para a criação de serviços web RESTful semanticamente corretos, prontos para uso em produção em grande escala.
Criar um servidor
Crie um diretório de projeto usando seu IDE ou este comando.
Crie um arquivo para seu aplicativo (geralmente app.js ou index.js).
Inicialize o projeto com o NPM gerando arquivos básicos de pacotes NPM sem precisar responder a nenhuma pergunta com a y opção.
Instale o pacote .
Modifique index.js e adicione o seguinte código-fonte para criar seu aplicativo e a example rota.
// index.js
var restify = require('restify')
const port = process.env.PORT || 3000
var server = restify.createServer()
server.get('/example', (req, res, next) => {
res.json({ message: 'Restify: Looks good to me!' })
next()
})
server.listen(port, function() {
console.log(`listening on port ${port}`)
})
Executar o servidor
Inicie o aplicativo usando a node linha de comando.
Agora você pode fazer uma solicitação usando o Postman para ver a resposta.

Hapi
hapi é uma estrutura extremamente escalável e robusta para Node.js. Desenvolvido inicialmente para lidar com o tráfego em grande escala da Black Friday do Walmart, o hapi continua sendo a escolha comprovada para necessidades de back-end de nível empresarial.
Criar um servidor
Crie um diretório de projeto usando seu IDE ou este comando.
Crie um arquivo para seu aplicativo (geralmente app.js ou index.js).
Inicialize o projeto com o NPM gerando arquivos básicos de pacotes NPM sem precisar responder a nenhuma pergunta com a y opção.
Instale o pacote .
Modifique index.js e adicione o seguinte código-fonte para criar seu aplicativo e a example rota.
// index.js
const Hapi = require('@hapi/hapi')
const port = process.env.PORT || 3000
const init = async () => {
const server = Hapi.server({
port: port,
host: 'localhost'
})
server.route({
method: 'GET',
path: '/example',
handler: (req, h) => {
return { message: 'hapi: Looks good to me!' }
}
})
await server.start()
console.log('Server running on %s', server.info.uri)
}
init()
Executar o servidor
Inicie o aplicativo usando a node linha de comando.
Agora você pode fazer uma solicitação usando o Postman para ver a resposta.

Conclusão
O Node.js pode ser usado na sua forma mais básica, mas você paga o preço por ter que implementar suas próprias soluções para recursos como roteamento e tipos de resposta. Sua aplicação será rápida, com poucos pacotes desnecessários, se você souber como otimizar melhor seu código para obter melhor desempenho. Você pode encontrar soluções de código aberto para roteamento e outros recursos, sem usar uma estrutura como as mencionadas aqui, mas, nesse caso, já vale a pena usar uma estrutura.
Enquanto o Express.js não impõe uma abordagem específica, ele possui muitos recursos integrados. Não é o mais rápido, mas isso não significa que seja lento. É certamente o mais fácil de começar a usar.
O Restify foi desenvolvido especificamente para escalar Applications RESTful e, apesar de sua simplicidade, é utilizado em alguns dos maiores implantações do Node.js do mundo.
hapi foi desenvolvido para escalar rapidamente, ao mesmo tempo em que oferece um conjunto completo de recursos e está pronto para uso corporativo.
Koa.js é uma alternativa compatível com assíncrono ao Express.js, sem os recursos integrados.
Muitos desenvolvedores vão escolher aquele com o melhor suporte ou a maior comunidade, o que, para mim, é uma escolha óbvia entre hapi e Express.js.
Todo o código
Você pode encontrar um único repositório com todo o código no GitHub, caso tenha alguma dificuldade com os exemplos apresentados aqui.
Leitura complementar
Criação de um aplicativo de check-in com a Verify API da Nexmo e o Koa.js
Adicionar verificação por SMS em um aplicativo React Native usando Node.js e Express
Encaminhar uma chamada por meio de um proxy de voz com o Koa.js
Criação de um aplicativo de check-in com a Verify API da Nexmo e o Koa.js
Criação de um aplicativo de chat de voz com Vue.js e Express
Crie um menu de resposta de voz interativa usando Node.js e Express
Crie uma caixa postal personalizada com Node.js, Express e Socket.io
Compartilhar:
Educador de tecnologia com um jeito amigável, pai de família, defensor da diversidade, provavelmente discuto um pouco demais. Ex-engenheiro de backend. Fale comigo sobre JavaScript (front-end ou back-end), o incrível Vue.js, DevOps, DevSecOps e tudo relacionado ao JamStack. Escritor no DEV.to