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".
Introdução
Finalizando a trilogia no GNU/Linux. Os dois primeiros artigos podem ser vistos aqui:
Já peço desculpas, pela demora, afinal o segundo artigo foi escrito no mês 07/2017, mas tive alguns contratempos, mas finalmente saiu o artigo 3.
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". Mas porque não será utilizado Entity Framework? A explicação é simples, existem vários artigos exibindo como utilizar postgres com Entity, logo, quis dar uma segunda opção, que inclusive "eu prefiro".
Obs.: não estou dizendo que uma é melhor que outra, apenas que eu prefiro ter "controle" sobre as minhas consultas, entretanto, no meu dia a dia eu utilizo NHIbernate (no meu trabalho) que ao meu ver está mais para o Entity do que para o ADO.NET.

Figura 1 - Database e Tabela Postgres
Os scripts para criação do database, criação da tabela e inserção de alguns dados estão logo abaixo.
- Configurando DOTNET Core e instalando VSCode no Linux [Artigo]
- Criando aplicação MVC utilizando DOTNET Core no GNU/Linux [Artigo]
Já peço desculpas, pela demora, afinal o segundo artigo foi escrito no mês 07/2017, mas tive alguns contratempos, mas finalmente saiu o artigo 3.
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". Mas porque não será utilizado Entity Framework? A explicação é simples, existem vários artigos exibindo como utilizar postgres com Entity, logo, quis dar uma segunda opção, que inclusive "eu prefiro".
Obs.: não estou dizendo que uma é melhor que outra, apenas que eu prefiro ter "controle" sobre as minhas consultas, entretanto, no meu dia a dia eu utilizo NHIbernate (no meu trabalho) que ao meu ver está mais para o Entity do que para o ADO.NET.
Criando as Tabelas no Postgres
Este artigo não tem por objetivo ensinar a configurar o Postgres no GNU/Linux, para isso existem vários artigos disponíveis na internet. Para o nosso exemplo foi criado o Database "DotNetCoreAPI" e a tabela "Pessoa", conforme ilustra a figura 1.
Figura 1 - Database e Tabela Postgres
-- Database: "DotNetCoreAPI"
-- DROP DATABASE "DotNetCoreAPI";
CREATE DATABASE "DotNetCoreAPI"
WITH OWNER = postgres
ENCODING = 'UTF8'
TABLESPACE = pg_default
LC_COLLATE = 'C.UTF-8'
LC_CTYPE = 'C.UTF-8'
CONNECTION LIMIT = -1;
-- Table: public."Pessoa"
-- DROP TABLE public."Pessoa";
CREATE TABLE public."Pessoa"
(
id bigint NOT NULL,
cpf bigint NOT NULL,
nome character(255) NOT NULL,
CONSTRAINT pk_id PRIMARY KEY (id)
)
WITH (
OIDS=FALSE
);
ALTER TABLE public."Pessoa"
OWNER TO postgres;
insert into "Pessoa" values (1,123456789, 'DotNet_1');
insert into "Pessoa" values (2,123456788, 'DotNet_2');
insert into "Pessoa" values (3,123456787, 'DotNet_3');
-- DROP DATABASE "DotNetCoreAPI";
CREATE DATABASE "DotNetCoreAPI"
WITH OWNER = postgres
ENCODING = 'UTF8'
TABLESPACE = pg_default
LC_COLLATE = 'C.UTF-8'
LC_CTYPE = 'C.UTF-8'
CONNECTION LIMIT = -1;
-- Table: public."Pessoa"
-- DROP TABLE public."Pessoa";
CREATE TABLE public."Pessoa"
(
id bigint NOT NULL,
cpf bigint NOT NULL,
nome character(255) NOT NULL,
CONSTRAINT pk_id PRIMARY KEY (id)
)
WITH (
OIDS=FALSE
);
ALTER TABLE public."Pessoa"
OWNER TO postgres;
insert into "Pessoa" values (1,123456789, 'DotNet_1');
insert into "Pessoa" values (2,123456788, 'DotNet_2');
insert into "Pessoa" values (3,123456787, 'DotNet_3');