Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works
Anything · Lazarus or Delphi
Random projectRandom project

crud-pessoa-endereco

View on GitHub

Member rating

No ratings yet.

Sign in to rate this project.

README

CRUD Pessoa + Endereco

Projeto Delphi/VCL com API REST em Delphi, PostgreSQL, CRUD de pessoa/endereco, importacao em lote e integracao ViaCEP.

Pre-requisitos

  • Windows 64 bits
  • Delphi com suporte aos projetos .dproj
  • Docker Desktop

Banco de Dados com Docker

O banco de dados PostgreSQL e iniciado via Docker Compose.

Para subir o banco localmente, execute:

bash
docker compose up -d

O container cria automaticamente o banco crud_pessoa_endereco com as credenciais definidas no docker-compose.yaml.

Os scripts em database/postgres/ sao executados automaticamente na primeira inicializacao do volume do PostgreSQL:

  • 001_schema.sql
  • 002_seed.sql

Se precisar recriar o banco do zero e rodar novamente os scripts de inicializacao:

bash
docker compose down -v
docker compose up -d

Configuracao da API

Arquivo: server/config.ini

ini
[database]
host=localhost
port=5434
database=crud_pessoa_endereco
user=postgres
password=postgres

[server]
host=localhost
port=9000
base_path=/api

Os valores estao preenchidos para teste local. Como o PostgreSQL roda via Docker, a API acessa a porta publicada no host 5434.

DLLs do PostgreSQL

O FireDAC/PostgreSQL precisa do libpq.dll e dependencias no mesmo diretorio do Api.exe.

As DLLs necessarias estao versionadas em:

text
server/Win64/Debug/

Ao compilar em outro perfil, garanta que estas DLLs tambem estejam na mesma pasta do executavel gerado.

Executando a API

Compile e execute o projeto:

text
server/Api.dproj

Ao iniciar, a API deve exibir no console:

text
API ativa em http://localhost:9000/api

Mantenha a janela da API aberta enquanto usa o cliente.

Configuracao do Cliente

Arquivo: client/config.ini

ini
[api]
baseurl=http://localhost:9000/api
timeout_ms=30000

Executando o Cliente

Compile e execute o projeto:

text
client/Client.dproj

Importacao em Lote

Use a opcao de importacao no cliente e selecione um arquivo no formato:

text
flNatureza;dsDocumento;nmPrimeiro;nmSegundo;dtRegistro;dsCep

Ha um arquivo de teste em:

text
mock_clients/50000_clients.csv

Depois da importacao, use o botao Atualizar CEPs na tela de listagem para consultar os CEPs pendentes no ViaCEP.

Estrutura

text
client/        Aplicacao VCL e services HTTP do cliente
server/        API, dominio, infraestrutura e configuracao
shared/        DTOs compartilhados entre client e server
database/      Scripts PostgreSQL
mock_clients/  Arquivos de massa para teste

Arquivos Ignorados

O repositorio ignora outputs do Delphi, historico da IDE e executaveis gerados. Apenas as DLLs necessarias do PostgreSQL em server/Win64/Debug/*.dll sao mantidas para facilitar os testes locais com FireDAC.