Introdução
Neste tutorial, abordaremos o desenvolvimento de aplicações web utilizando a linguagem de programação Racket, um dialeto da linguagem Scheme, que é especialmente poderoso e flexível. Vamos nos concentrar no uso do Racket Web Server, uma ferramenta robusta para a criação de aplicações web em Racket, além do framework Racket-Express, que simplifica a criação de APIs eficientes e escaláveis. Desde a configuração do ambiente de desenvolvimento até a criação completas de rotas e testes unitários, nosso objetivo é proporcionar uma compreensão abrangente de como construir uma aplicação web totalmente funcional usando Racket.
Etapas
Configuração do Ambiente de Desenvolvimento
Para começar, é necessário ter o Racket instalado em sua máquina. Visite o site oficial do Racket (https://racket-lang.org/) e siga as instruções de instalação para o seu sistema operacional. Após a instalação, verifique se o Racket foi instalado corretamente executando o seguinte comando no terminal:
commands# Verificar instalação do Racket
racket --versionCriação do Projeto Racket
Crie um diretório para o seu projeto e inicie um novo arquivo com o nome `main.rkt`. Este será o seu arquivo principal onde você desenvolverá a aplicação. Insira o seguinte código de inicialização para configurar o servidor web:
main.rkt#lang racket (require web-server/servlet) (define (start req) (response/xexpr '(html (head (title "Olá, Racket!")) (body (h1 "Bem-vindo à API em Racket!"))))) (serve/servlet (start) #:port 8080 #:launch-browser #f)
Adicionando Racket-Express ao Projeto
Para usar o Racket-Express, primeiro você precisa instalá-lo. Em um terminal, execute o seguinte comando para adicionar o Racket-Express ao seu projeto. Isso adiciona as bibliotecas necessárias para construir uma API facilmente:
commands(require pkg/install) (pkg/install 'racket-express)
Configurando a Estrutura de Diretórios
Crie a seguinte estrutura de diretórios no seu projeto:
– `src`
– `api.rkt`
– `main.rkt`Isso ajudará a organizar seu código e tornar mais fácil a manutenção no futuro.
commands# Estrutura de diretórios do projeto
mkdir src
touch src/api.rktCriando a API com Racket-Express
No arquivo `api.rkt`, você pode definir as rotas da sua API e a lógica de negócio. Preencha `api.rkt` com o seguinte código, que define um endpoint simples que retorna uma lista de produtos:
api.rkt#lang racket (require racket-express) (define products (list (hash 'id 1 'name "Produto 1" 'price 10.0) (hash 'id 2 'name "Produto 2" 'price 20.0))) (define (get-products-handler req) (response/json products)) (define app (express) (get "/api/products" get-products-handler)) (serve/servlet app #:port 8080)
Testando a API
Agora que sua API está configurada, você pode executá-la. No terminal, execute o comando para iniciar o servidor. Em seguida, você pode testar a API usando o Postman ou cURL.
commands# Executar o servidor
racket main.rkt
# Para testar a API com cURL
curl -X GET http://localhost:8080/api/productsImplementação de Testes Unitários
Crie um arquivo de teste `test.rkt` para validar a lógica da API. O código a seguir usa o framework de testes do Racket para garantir que a API retorne a lista correta de produtos.
test.rkt#lang racket (require rackunit) (require src/api) (check-equal? (get-products-handler '()) products)
Executando os Testes
Agora execute os testes para validar sua implementação. Isso garantirá que tudo funcione como esperado. Você pode executar os testes com o seguinte comando:
commands# Executar testes
racket test.rkt
Conclusão
Neste tutorial, você aprendeu como desenvolver aplicações web usando Racket e o framework Racket-Express. Começamos com a configuração do ambiente, criamos uma API básica para gerenciar produtos e implementamos testes unitários para garantir a funcionalidade. Com essa base, você está bem posicionado para desenvolver aplicações web mais complexas e ricas em recursos usando Racket.