Criando uma API com .NET 6 usando VSCODE — parte 2 !
Bom, depois que você viu o artigo ensinando a fazer a API utilizando o Visual Studio, vamos agora fazer o mesmo processo utilizando linha de comando e o VSCODE, o produto final será o mesmo, mas a idéia é mostrar que sem o Visual Studio podemos sim criar programas em .NET !
Primeiro vamos criar uma nova “solution” via linha de comando.
dotnet new sln -o ProdutosApi
Depois criaremos o projeto
dotnet new web -o ProdutosApi
Agora vamos inserir o projeto na nossa “solution”
dotnet sln ProdutosApi/ProdutosApi.sln add ProdutosApi/ProdutosApi.csproj
Pronto, agora é só usar o VSCode para fazermos a programação, só para testar, já vamos executar um comando e ver como o projeto funciona !
Abra o vscode, e clique em “File”, depois “Open Folder” e abra a pasta do seu projeto.
Abra um terminal como demonstrado na figura, e execute o comando
dotnet run
Pronto, no nosso navegador aí está
Agora é só repetir os passos da Parte 1 da publicação, criando os arquivos necessários.
Vamos já criar todos os arquivos necessários:
ProdutosModel.cs
namespace ProdutosApi { public class ProdutosModel { public int Id { get; set; } public string Descricao { get; set; } public decimal Custo { get; set; } public decimal Preco { get; set; } public decimal Estoque { get; set; } public string? Foto { get; set; } public DateTime DataDoCadastro { get; set; } public DateTime DataDaAlteracao { get; set; } public bool Ativo { get; set; } }}
IProdutosService.cs.
namespace ProdutosApi{ public interface IProdutosService { ICollection<ProdutosModel> GetAll(); ProdutosModel GetOne(int id); }}
ProdutosService.cs
namespace ProdutosApi{ public class ProdutosService : IProdutosService { private IList<ProdutosModel> _produtos; public ProdutosService() { _produtos = new List<ProdutosModel>(); _produtos.Add(new ProdutosModel() { Id = 1, Descricao = "Tomate", Ativo = true, Custo = 1, Preco = 2, Estoque = 10 }); _produtos.Add(new ProdutosModel() { Id = 2, Descricao = "Laranja", Ativo = true, Custo = 2, Preco = 3, Estoque = 20 }); _produtos.Add(new ProdutosModel() { Id = 3, Descricao = "Cebola", Ativo = true, Custo = 3, Preco = 4, Estoque = 30 }); _produtos.Add(new ProdutosModel() { Id = 4, Descricao = "Melancia", Ativo = true, Custo = 4, Preco = 5, Estoque = 40 }); } public ICollection<ProdutosModel> GetAll() { return _produtos; } public ProdutosModel GetOne(int id) { return _produtos.Where(a => a.Id == id).FirstOrDefault(); } }}
e agora voltar ao Program.cs e fazer a inclusão dos endpoints utilizando o conceito de Minimal Api e a injeção de dependência da classe de serviço.
Pronto, agora é só compilar e executar.
para isso, vamos fazer dentro do terminal do Vscode novamente o comando “dotnet run”.
Assim que rodar seu terminal ficará mostrando que a execução está ok se estiver assim: (obs: os números das portas podem mudar)
E o resultado você pode ver no seu navegador, colocando o endereço exibido ali no Terminal “https://localhost:7069” mais o seu endpoint que no caso é produtos.
https://localhost:7069/Produtos
ou colocando /Produtos/2
Pronto, a primeira parte está ok !! Mas vamos fazer algo mais pela API, inserindo o Swagger !
Para isto vamos adicionar o pacote nuget
dotnet add ProdutosApi.csproj package Swashbuckle.AspNetCore -v 6.2.3
Depois disso, basta acrescentar a inicialização do Swagger no Program.cs
Agora é só rodar novamente a aplicação e digitar no navegador o endpoint do swagger !
e agora podemos testar a API via interface ou obter a documentação, que conforme outro POST (Criando todas as requisições HTTP no Postman usando apenas o Swagger da sua aplicação.) que já fiz, pode auxiliar à montar as chamadas no Postman !
E se você sente falta da Solution Explorer, instale o plugin no VSCODE, para isso siga os passos da imagem
Aí você poderá ver seu projeto de uma forma muito mais organizada como é feito no Visual Studio, e ainda terá a possibilidade de clicar sobre a sua “Solution” e abrir um menu com opções similar ao que fazia no Visual Studio.
Pronto, agora sabemos como fazer uma API sem utilizar o Visual Studio !