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

  1. 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 -v

  2. Criaçã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 coffeescript

  3. Estrutura 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.coffee

  4. Implementação do Servidor Express

    No arquivo `src/index.coffee`, configure e inicie o servidor Express, definindo uma porta para a API.

    index.coffee
    express = require 'express'
    app = express()
    app.use express.json()
    
    app.listen 3000, ->
        console.log 'Servidor rodando na porta 3000'
    

  5. 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.coffee
    express = require 'express'
    router = express.Router()
    
    # Importar o controlador
    ProdutosController = require '../controllers/produtosController'
    
    router.get '/', ProdutosController.getProdutos
    
    module.exports = router
    

  6. 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.coffee
    produtos = [
        { id: 1, nome: 'Produto 1', preco: 10.0 },
        { id: 2, nome: 'Produto 2', preco: 20.0 }
    ]
    
    exports.getProdutos = (req, res) ->
        res.json produtos
    

  7. 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.coffee
    express = 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'
    

  8. 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-http

    test_example
    const 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()
    

  9. 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/test

    curl_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.

Hashtags

#CoffeeScript #ExpressJS #NodeJS #APIs #DesenvolvimentoWeb #TestesUnitarios