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.487 ]

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

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

Seja Legal, não use softwares piratas!

Porque segurança importa?

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

Linux, aí vamos nós!

Leitura recomendada

Conhecendo o Slpkg (gerenciador de pacotes para Slackware)

Como converter CentOS 5 em Fedora 11

Instalando Asterisk2Billing no SuSE 10.0

Cryptkeeper - Transportando arquivos com segurança no pendrive

SIGERAR - Sistema de Gerenciamento de Requisitos

  
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