Este programa em Go busca todos os pacientes disponíveis na API do Simples Dental, paginando automaticamente através de todas as páginas disponíveis.
export USUARIO_TOKEN="seu_token_aqui"./run_fetch.sh seu_token_aqui./json_to_csv.sh# Buscador de pacientes
cd fetch && go build -o fetch_pacientes fetch_pacientes.go types.go
# Conversor JSON para CSV
cd convert && go build -o convert_csv convert_csv.go types.go- Paginação automática: Incrementa automaticamente o
pageNumberaté buscar todos os registros - Retry com backoff: Tenta novamente em caso de falha na requisição
- Rate limiting: Pausa entre requisições para não sobrecarregar a API
- Salvamento em JSON: Salva todos os dados em
pacientes_completos.json - Logs detalhados: Mostra progresso da busca página por página
- Tratamento de erros: Lida com falhas de rede e respostas inválidas
- Conversão automática: Converte JSON para CSV formatado
- Formatação de datas: Converte datas ISO para formato brasileiro (DD/MM/AAAA)
- Limpeza de dados: Remove caracteres problemáticos para CSV
- Progresso detalhado: Mostra progresso da conversão
- Campos completos: Inclui todos os campos disponíveis dos pacientes
Você pode modificar as seguintes configurações no código:
BaseURL: URL da API (padrão:https://api.simplesdental.com/pacientes)PageSize: Tamanho da página (padrão: 100)MaxRetries: Número máximo de tentativas (padrão: 3)RetryDelay: Tempo de espera entre tentativas (padrão: 2 segundos)
O programa espera que a API retorne dados no seguinte formato:
{
"data": [
{
"id": 1,
"nome": "Nome do Paciente",
"email": "email@exemplo.com",
"telefone": "11999999999"
}
],
"pageNumber": 1,
"pageSize": 100,
"totalPages": 10,
"totalCount": 1000,
"hasNext": true
}- Progresso página por página
- Total de pacientes encontrados
- Primeiros 3 pacientes como exemplo
- Salva todos os dados em
pacientes_completos.json
- Progresso da conversão (a cada 1000 registros)
- Total de pacientes convertidos
- Arquivo CSV com cabeçalhos em português
- Datas formatadas no padrão brasileiro (DD/MM/AAAA)
- Campos limpos e prontos para análise
fetch/- Diretório do buscador de pacientesfetch_pacientes.go- Programa principal para buscar pacientestypes.go- Definições de tiposgo.mod- Módulo Go
convert/- Diretório do conversor CSVconvert_csv.go- Conversor de JSON para CSVtypes.go- Definições de tiposgo.mod- Módulo Go
run_fetch.sh- Script bash para buscar pacientesjson_to_csv.sh- Script bash para converter JSON para CSVtest_api.sh- Script de teste da API
README.md- Documentação completa do projetoconfig.example- Exemplo de configuração.gitignore- Arquivos ignorados pelo Git
pacientes_completos.json- Dados dos pacientes em JSONpacientes_completos.csv- Dados dos pacientes em CSV
- Go 1.21 ou superior
- Token de autenticação válido da API
- Acesso à internet para fazer requisições HTTP