Criando uma WEBApi utilizando dotnet core e vscode

Finalizando a trilogia no GNU/Linux. Logo abaixo será explicado e exemplificado como criar uma WebApi consumindo dados do Postgres e uma aplicação que irá consumir esse WebAPI. O acesso aos dados não será utilizando Entity Framework, mas sim "SQL Puro".

[ Hits: 6.474 ]

Por: Tiago Zaniquelli em 07/05/2018


Criando WebAPI PessoaAPI



Como dito anteriormente será utilizado ADO.NET para acessar o Postgres, para isso, instalaremos seu provider através do nuget, execute os comandos abaixo:

# dotnet add PessoaAPI.csproj package Npgsql

Em nosso exemplo utilizaremos o modelo (BLL, DAL, Model), apesar de ser uma arquitetura considerada "ultrapassada", é simples e eficaz para o nosso projeto.

Utilizando o VSCode vamos criar 3 pastas e 3 classes sendo elas BLL (BPessoa.cs), DAL(DPessoa.cs) e Model (Pessoa.cs). A estrutura ficará parecido com a figura 7.

Figura 7 - Estrutura aplicação
A classe DPessoa recuperará os dados do Postgres e alimentará uma lista de objetos do tipo Pessoa. A classe BPessoa consumirá a lista gerada pela classe DPessoa.

Abaixo os códigos das classes criadas.

Model/Pessoa.cs
using System;

namespace PessoaAPI.Models
{
   public class Pessoa{
       public Int64 Id {get;set;}
       public Int64 CPF {get;set;}
       public string Nome {get;set;}
   }
}

DAL/DPessoa.cs
using Npgsql;
using System.Collections.Generic;
using System;
using PessoaAPI.Models;

namespace PessoaAPI.DAL
{

   public class DAOPessoa{

       public List<Pessoa> RetornarPessoas(){
           var connString = "Host=localhost;Username=postgres;Password=zp3;Database=DotNetCoreAPI";

           List<Pessoa> lstPessoa = new List<Pessoa>();

           try{
               using (var conn = new NpgsqlConnection(connString))
               {
                   conn.Open();
                   using (var cmd = new NpgsqlCommand("SELECT id, cpf, Nome FROM \"Pessoa\"", conn))
                   using (var reader = cmd.ExecuteReader())
                   while (reader.Read()){
                       Pessoa pessoa = new Pessoa();
                       pessoa.Id = (Int64)reader["id"];
                       pessoa.CPF = (Int64)reader["cpf"];
                       pessoa.Nome = reader.GetString(2);
                       lstPessoa.Add(pessoa);
                   }
                   conn.Close();
               }
           }catch(Exception ex){
               string teste = ex.Message;
           }      
          

           return lstPessoa;
       }
   }
}

BLL/BPessoa.cs
using System.Collections.Generic;
using PessoaAPI.Models;
using PessoaAPI.DAL;

namespace PessoaAPI.BLL
{

   public class BPessoa
   {
       public List<Pessoa> RetornarPessoas(){
           return new DAOPessoa().RetornarPessoas();
       }      
   }
}

Estrutura está criada, vamos criar a controller da nossa api. Dentro da pasta controller crie um arquivo chamado ApiPessoaController.cs. Adicionaremos o código a abaixo no controller.

ApiPessoaController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using PessoaAPI.BLL;
using PessoaAPI.Models;

namespace PessoaAPI.Controllers
{
   [Route("api/[controller]")]
   public class ApiPessoaController : Controller
   {
       // GET api/values
       [HttpGet("{id}")]
       public List<PessoaAPI.Models.Pessoa> Get(){
           return new BPessoa().RetornarPessoas();
       }      
   }
}

O código acima "simplesmente" acessa a classe de negócio e expõe ela. Foi criado uma "rota" onde para acessarmos a API seja necessário colocar o "http://endereco/api/ApiPessoaController".

Após a implementação acima testaremos nossa api para verificar se tudo está funcionando como planejamos. Para isso execute os comandos abaixo:

# dotnet restore
# dotnet build
# dotnet run


Depois acesse http://localhost:5000/api/ApiPessoa/Get/ e o resultado esperado é parecido com a figura 8.

Figura 8 - Testando nossa api
Temos nossa API pronta, criaremos nosso cliente para consumo de nossa API.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Criando o Projeto WebAPI
   3. Criando WebAPI PessoaAPI
   4. Cliente WEB
Outros artigos deste autor

Porque segurança importa?

Configurando DOTNET Core e instalando VSCode no Linux

Seja Legal, não use softwares piratas!

Convergência entre segurança física e lógica

Criando aplicação MVC utilizando DOTNET Core no GNU/Linux

Leitura recomendada

Planejando e migrando softwares do Windows para o Linux

SystemRescueCd - Corrigindo o sistema e recuperando dados

Disponibilidade em VOIP (VOIP WIFI POE)

Taskwarrior, o Guerreiro das Tarefas - Gerenciar sua Lista TODO no Terminal

Software envelhece?

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts