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

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

    commands
    curl -fsSL https://deno.land/x/install/install.sh | sh

  2. 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:

    commands
    mkdir my-deno-app
    cd my-deno-app
    touch mod.ts

  3. Configurando 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.ts
    import { 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");

  4. Testando o Servidor

    Com o servidor configurado, vamos testá-lo. Execute o servidor com o comando Deno e verifique se ele está funcionando corretamente:

    commands
    deno run --allow-net mod.ts

  5. 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.ts
    import { 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");

  6. 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.ts
    import { 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");
    });

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

    commands
    deno test --allow-net mod_test.ts

  8. 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.ts
    export { Application, Router } from "https://deno.land/x/oak/mod.ts";

  9. 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.ts
    export 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!

Hashtags

#TypeScript #Deno #OakFramework #DesenvolvimentoWeb #APIs #Testes