Introdução
Neste tutorial, vamos explorar o CoffeeScript, uma linguagem que compila para JavaScript e nos oferece uma sintaxe mais simples e legível. Aprenderemos a integrá-lo com o Express.js, um dos frameworks mais populares para construção de APIs em Node.js, permitindo que desenvolvedores construam aplicações robustas e escaláveis. Iniciaremos com a configuração do ambiente, passando pela criação de uma API RESTful completa, abordaremos os principais conceitos do Express.js, implementaremos as rotas, gerenciaremos dados usando um banco de dados noSQL e finalizaremos com a criação de testes unitários para garantir a qualidade do código. Este guia é ideal para desenvolvedores que buscam uma abordagem prática e eficiente para construir APIs utilizando JavaScript e suas variantes.
Etapas
Configuração do Ambiente
Certifique-se de ter o Node.js e o npm instalados em sua máquina. Verifique se estão disponíveis usando os comandos `node -v` e `npm -v`. Caso não estejam instalados, faça o download do instalador do site oficial do Node.js.
commands# Verificar versões instaladas
node -v
npm -vCriação do Projeto com Express.js
Crie um diretório para seu projeto e inicialize um novo projeto Node.js com o npm. Em seguida, instale o Express.js e o CoffeeScript como dependências.
commands# Criar diretório do projeto e navegar para ele
mkdir minha-api-coffeescript && cd minha-api-coffeescript
# Inicializar o projeto Node.js
npm init -y
# Instalar Express.js e CoffeeScript
npm install express coffeescriptEstrutura do Projeto
Crie a estrutura básica do projeto, incluindo pastas para a aplicação, rotas, controle e testes. Vamos criar o arquivo principal do servidor.
commands# Criar pastas e arquivos principais
mkdir src && mkdir src/routes src/controllers src/test
touch src/index.coffee src/routes/produtos.coffee src/controllers/produtosController.coffeeImplementação do Servidor Express
No arquivo `src/index.coffee`, configure e inicie o servidor Express, definindo uma porta para a API.
index.coffeeexpress = require 'express' app = express() app.use express.json() app.listen 3000, -> console.log 'Servidor rodando na porta 3000'
Criação da Rota de Produtos
Implemente produtos como uma rota na API dentro do arquivo `src/routes/produtos.coffee`, utilizando o controlador para gerenciar as operações.
produtos.coffeeexpress = require 'express' router = express.Router() # Importar o controlador ProdutosController = require '../controllers/produtosController' router.get '/', ProdutosController.getProdutos module.exports = router
Implementação do Controlador de Produtos
No controlador `src/controllers/produtosController.coffee`, defina a lógica para retornar uma lista de produtos. Usaremos um array simulado.
produtosController.coffeeprodutos = [ { id: 1, nome: 'Produto 1', preco: 10.0 }, { id: 2, nome: 'Produto 2', preco: 20.0 } ] exports.getProdutos = (req, res) -> res.json produtos
Integrando as Rotas com o Servidor
Atualize o arquivo `src/index.coffee` para usar as rotas definidas para produtos. Monte as rotas no aplicativo Express.
index.coffeeexpress = require 'express' app = express() app.use express.json() app.use '/api/produtos', require './routes/produtos' app.listen 3000, -> console.log 'Servidor rodando na porta 3000'
Implementação de Testes Unitários
Crie testes para as rotas e controladores utilizando um framework de teste como Mocha e Chai. Instale as dependências necessárias.
commands# Instalar Mocha e Chai
npm install --save-dev mocha chai chai-httptest_exampleconst chai = require 'chai' const chaiHttp = require 'chai-http' const server = require '../src/index.coffee' const should = chai.should() chai.use chaiHttp describe 'Produtos API', -> it 'deve retornar todos os produtos', (done) -> chai.request(server) .get '/api/produtos' .end (err, res) -> res.should.have.status 200 res.body.should.be.a 'array' done()
Executando a Aplicação e Testes
Use o CoffeeScript para compilar e executar a aplicação. Em seguida, utilize ferramentas como Postman ou cURL para testar os endpoints da API.
commands# Compilar e executar a aplicação
coffee src/index.coffee
# Executar os testes
mocha src/testcurl_examples# Listar todos os produtos
curl -X GET http://localhost:3000/api/produtos
Conclusão
Neste tutorial, você aprendeu a construir uma API RESTful utilizando CoffeeScript e Express.js. Desde a configuração do ambiente até a criação de rotas, controladores, e a implementação de testes unitários, você agora tem um entendimento abrangente de como trabalhar com essas tecnologias de maneira eficiente. A prática com esses conceitos permitirá que você desenvolva aplicações mais complexas e escaláveis no futuro, além de explorar ainda mais a versatilidade do JavaScript.