DEV Community

João Marcos Rodrigues Pimentel for LEDS

Posted on • Edited on

Manual de Uso R2D2

Este manual descreve o uso da extensão de Visual Studio Code geradora de código e documentação R2D2.

Instalação:

1- Abra o Visual Studio Code
2- Clique em extensões
3- Pesquise R2D2
4- Clique para instalar a extensão R2D2 do LEDS IFES

Imagem da loja do VSCode com a extensão aberta

Como usar:

Criando o arquivo para geração:

1- Crie um arquivo de nome qualquer com a extensão .r2d2.
2- Após criar o arquivo, abra-o.
3- Aqui iniciaremos a programação da geração de código. Primeiro, definimos a configuração do projeto a ser gerado. Para fins de exemplo, vamos seguir o modelo de exemplo do Slave-One (Outro projeto do Leds). Assim, definimos as configurações do projeto:

   Configuration {
       software_name: "Slave-One" // O nome do projeto
       about: "Slave-one project example" // Uma descrição do projeto
       language: csharp-minimal-api // Escolha a linguagem em que o código será gerado
   }
Enter fullscreen mode Exit fullscreen mode

Para a linguagem, temos três opções por enquanto: python, java e csharp-minimal-api.
4- Depois, definimos módulos. Assim, definimos um módulo:

   module Main {
       // Aqui ficam os componentes dos módulos
   }
Enter fullscreen mode Exit fullscreen mode

5- Dentro de módulos, definimos entidades e enums:

   entity Projeto {
       nome: string
       data_inicio: date
       data_fim: date
       orcamento: decimal
       cliente: string
       patrocinador: string
       objetivo: string
       Projeto OneToMany Projeto
       Projeto OneToMany Time
       Projeto uses ProjetoStatus
   }

   enum ProjetoStatus {
       Ativo
       Cancelado
       Entregue
   }
Enter fullscreen mode Exit fullscreen mode

Dentro da declaração de entidade, temos os seus atributos, como nome: string, as relações entre as classes, como Projeto OneToMany Projeto, e o Projeto uses ProjetoStatus, que indica o uso de um enum. Na declaração do Enum, apenas colocamos quais os valores do enum. E assim continuamos a declarações com quantos módulos, entidades e enums forem necessários.

Rodando R2D2 para gerar o código:

Após criar, estruturar e salvar o arquivo .r2d2, clique com o botão direito em qualquer lugar dentro do arquivo e escolha o que você deseja gerar (Na versão atual, o r2d2 gera apenas a API), como na imagem abaixo:

Menu clique com botão direito no VSCode

Após isso, as pastas e o conteúdo serão gerados na mesma pasta em que o arquivo .r2d2 se encontra.

Pastas com os conteúdos no explorador de arquivos

Como utilizar o código gerado em C# no Visual Studio:

1- Abra o arquivo da solução gerada no Visual Studio: Com o Visual Studio já instalado, apenas abra a pasta do backend e abra o arquivo com o nome do seu projeto .sln.
2- (Não ocorre em todos os casos) Correção da auto relação na entidade, caso tenha alguma auto relação, entre no arquivo .cs da entidade e faça a troca do nome da entidade para o nome desejado (um nome diferente do da própria entidade para evitar conflitos no C#)
Exemplo da troca de nome
Depois disso, troque o nome da entidade também na relação dentro do ContextDb.cs:
Exemplo troca de nome dentro do ContextDb
Assim a auto relação funcionará corretamente.
3- Apenas clique para rodar o container docker e código.
Menu do Visual Studio com o botão para rodar
Após isso é só esperar tudo compilar, que ele abrirá uma página no seu navegador com o link da API, caso apareça uma página com Hello World tudo está funcionando.

Abrindo o Swagger:

1- Já na página da API no navegador(Hello World), basta adicionar /swagger ao final do link que entraremos na tela do swagger.

Tela do Swagger

Exemplo:

Link do repositório com o exemplo do Slave-One
Neste repositório temos tudo o que foi gerado seguindo este manual.

Top comments (0)