Neste projeto você irá desenvolver um servidor HTTP em Golang que gerencie operações bancárias simples, utilizando PostgreSQL para armazenamento de dados e proteção contra ataques CSRF.
Estrutura, regras e requisitos do projeto
Antes de iniciar a implementação do servidor, configure o banco de dados de acordo com as seguintes especificações, utilizando migrations:
pessoa_fisica, que armazenará informações sobre indivíduos. Ela deve conter os seguintes campos:
id: Identificador único da pessoa (chave primária, autoincrementável).renda_mensal: Renda mensal da pessoa (valor decimal).idade: Idade da pessoa (número inteiro).nome_completo: Nome completo da pessoa (texto de até 255 caracteres).celular: Número de celular (texto de até 20 caracteres).email: Endereço de e-mail (texto de até 255 caracteres).categoria: Categoria da pessoa (texto de até 50 caracteres).saldo: Saldo disponível na conta (valor decimal).pessoa_juridica, que armazenará informações sobre empresas. Ela deve conter os seguintes campos:
id: Identificador único da empresa (chave primária, autoincrementável).faturamento: Faturamento anual da empresa (valor decimal).idade: Tempo de existência da empresa em anos (número inteiro).nome_fantasia: Nome comercial da empresa (texto de até 255 caracteres).celular: Número de celular da empresa (texto de até 20 caracteres).email_corporativo: Endereço de e-mail corporativo (texto de até 255 caracteres).categoria: Categoria da empresa (texto de até 50 caracteres).saldo: Saldo disponível na conta da empresa (valor decimal).Como já exercitamos a criação de regra de negócio o suficiente até aqui, toda a lógica ficará por sua conta. Para auxiliar, deixaremos apenas as rotas necessárias.
POST /conta)GET /conta/{id}/saldo)POST /conta/{id}/deposito)POST /conta/{id}/saque)POST /conta/transferencia)DELETE /conta/{id})Antes de iniciar a implementação do servidor, configure o banco de dados de acordo com as seguintes especificações, utilizando migrations:
pessoa_fisica, que armazenará informações sobre indivíduos. Ela deve conter os seguintes campos:
id: Identificador único da pessoa (chave primária, autoincrementável).renda_mensal: Renda mensal da pessoa (valor decimal).idade: Idade da pessoa (número inteiro).nome_completo: Nome completo da pessoa (texto de até 255 caracteres).celular: Número de celular (texto de até 20 caracteres).email: Endereço de e-mail (texto de até 255 caracteres).categoria: Categoria da pessoa (texto de até 50 caracteres).saldo: Saldo disponível na conta (valor decimal).pessoa_juridica, que armazenará informações sobre empresas. Ela deve conter os seguintes campos:
id: Identificador único da empresa (chave primária, autoincrementável).faturamento: Faturamento anual da empresa (valor decimal).idade: Tempo de existência da empresa em anos (número inteiro).nome_fantasia: Nome comercial da empresa (texto de até 255 caracteres).celular: Número de celular da empresa (texto de até 20 caracteres).email_corporativo: Endereço de e-mail corporativo (texto de até 255 caracteres).categoria: Categoria da empresa (texto de até 50 caracteres).saldo: Saldo disponível na conta da empresa (valor decimal).Como já exercitamos a criação de regra de negócio o suficiente até aqui, toda a lógica ficará por sua conta. Para auxiliar, deixaremos apenas as rotas necessárias.
POST /conta)GET /conta/{id}/saldo)POST /conta/{id}/deposito)POST /conta/{id}/saque)POST /conta/transferencia)DELETE /conta/{id})