Introdução
Neste tutorial, você irá aprender a desenvolver aplicações com TypeScript utilizando Deno, uma plataforma moderna que promete simplificar o desenvolvimento de aplicações. Vamos explorar como configurar o ambiente Deno, integrar frameworks populares como Oak para criar uma API RESTful, e usar ferramentas como deno test para implementar testes eficientes. Este guia é ideal para desenvolvedores que querem aproveitar as vantagens do TypeScript e Deno, permitindo criar aplicações robustas e testáveis com mais facilidade. Ao final do tutorial, você terá uma aplicação funcional e entenderá as melhores práticas para desenvolvimento com Deno.
Etapas
Instalação do Deno
Primeiro, precisamos instalar o Deno em nossa máquina. Para isso, abra seu terminal e execute o comando abaixo. Se você já possui um gerenciador de pacotes instalado, pode usar esse método para garantir a instalação correta:
commandscurl -fsSL https://deno.land/x/install/install.sh | sh
Criando o Projeto Deno
Agora que o Deno está instalado, criaremos uma nova pasta para o nosso projeto e inicializaremos um arquivo para a nossa aplicação. Navegue até a pasta desejada e execute os comandos abaixo para começar:
commandsmkdir my-deno-app
cd my-deno-app
touch mod.tsConfigurando o Servidor com Oak
Vamos utilizar Oak, um framework para Deno que facilita a construção de servidor HTTP. Instale-o e crie um servidor básico no arquivo `mod.ts` que acabamos de criar:
mod.tsimport { Application } from "https://deno.land/x/oak/mod.ts"; const app = new Application(); app.use((ctx) => { ctx.response.body = "Hello, Deno!"; }); await app.listen({ port: 8000 }); console.log("Servidor rodando em http://localhost:8000");
Testando o Servidor
Com o servidor configurado, vamos testá-lo. Execute o servidor com o comando Deno e verifique se ele está funcionando corretamente:
commandsdeno run --allow-net mod.ts
Criando as Rotas da API
Agora vamos adicionar algumas rotas à nossa aplicação. Crie um roteiro simples que responda a diferentes endpoints. Atualize o arquivo `mod.ts`:
mod.tsimport { Application, Router } from "https://deno.land/x/oak/mod.ts"; const app = new Application(); const router = new Router(); router.get("/", (ctx) => { ctx.response.body = "API Deno com Oak"; }); router.get("/hello", (ctx) => { ctx.response.body = "Olá, Deno!"; }); app.use(router.routes()); app.use(router.allowedMethods()); await app.listen({ port: 8000 }); console.log("Servidor rodando em http://localhost:8000");
Integrando Testes com Deno
Deno oferece suporte nativo para testes. Crie um arquivo chamado `mod_test.ts` e adicione alguns testes simples para suas rotas:
mod_test.tsimport { assertEquals } from "https://deno.land/std/testing/asserts.ts"; import { createServer } from "https://deno.land/x/oak/mod.ts"; Deno.test("Testando a rota /", async () => { const response = await fetch("http://localhost:8000/"); assertEquals(await response.text(), "API Deno com Oak"); });
Executando os Testes
Para rodar os testes, você precisará iniciar o servidor primeiro. Inicie o servidor em um terminal e, em outro terminal, execute o seguinte comando para rodar os testes:
commandsdeno test --allow-net mod_test.ts
Gerenciando Dependências
Deno gerencia dependências automaticamente, mas você pode desejar criar um arquivo `deps.ts` para consolidar e facilitar a importação das bibliotecas que você usa. Crie este arquivo e adicione as seguintes linhas:
deps.tsexport { Application, Router } from "https://deno.land/x/oak/mod.ts";
Implementando um Modelo
Vamos criar um modelo simples para representar os dados de um ‘User’. Adicione o seguinte código a um arquivo chamado `user.ts`:
user.tsexport interface User { id: number; name: string; email: string; } const users: User[] = []; export function getUsers() { return users; } export function addUser(user: User) { users.push(user); }
Conclusão
Neste tutorial, você aprendeu a usar Deno para desenvolver aplicações com TypeScript, configurando um servidor básico, criando rotas, realizando testes e gerenciando dependências. Você agora possui as ferramentas e os conhecimentos necessários para desenvolver aplicações web modernas com Deno e explorar mais sobre suas funcionalidades. Continue experimentando e expandindo suas aplicações com novos recursos e integrações!