
Conheça o projeto
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.
Instruções
Estrutura, regras e requisitos do projeto
Requisitos
- Criar um servidor HTTP em Golang.
- Configurar a conexão com um banco de dados PostgreSQL.
- Implementar seis rotas para operações bancárias:
- Criar conta
- Consultar saldo
- Depositar dinheiro
- Sacar dinheiro
- Transferir dinheiro entre contas
- Fechar conta
- Utilizar tokens CSRF para proteger operações que modificam dados.
- Implementar respostas JSON para as requisições.
Estrutura do Banco de Dados (PostgreSQL)
Antes de iniciar a implementação do servidor, configure o banco de dados de acordo com as seguintes especificações, utilizando migrations:
- Crie a tabela
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).
- Crie a tabela
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).
Rotas
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.
- Criar Conta (
POST /conta
) - Consultar Saldo (
GET /conta/{id}/saldo
) - Depositar Dinheiro (
POST /conta/{id}/deposito
) - Sacar Dinheiro (
POST /conta/{id}/saque
) - Transferência (
POST /conta/transferencia
) - Fechar Conta (
DELETE /conta/{id}
)
Proteção CSRF
- Implementar um middleware para validar o token CSRF nas operações que alteram dados.
Requisitos
- Criar um servidor HTTP em Golang.
- Configurar a conexão com um banco de dados PostgreSQL.
- Implementar seis rotas para operações bancárias:
- Criar conta
- Consultar saldo
- Depositar dinheiro
- Sacar dinheiro
- Transferir dinheiro entre contas
- Fechar conta
- Utilizar tokens CSRF para proteger operações que modificam dados.
- Implementar respostas JSON para as requisições.
Estrutura do Banco de Dados (PostgreSQL)
Antes de iniciar a implementação do servidor, configure o banco de dados de acordo com as seguintes especificações, utilizando migrations:
- Crie a tabela
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).
- Crie a tabela
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).
Rotas
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.
- Criar Conta (
POST /conta
) - Consultar Saldo (
GET /conta/{id}/saldo
) - Depositar Dinheiro (
POST /conta/{id}/deposito
) - Sacar Dinheiro (
POST /conta/{id}/saque
) - Transferência (
POST /conta/transferencia
) - Fechar Conta (
DELETE /conta/{id}
)
Proteção CSRF
- Implementar um middleware para validar o token CSRF nas operações que alteram dados.