Desenvolver uma API em C# com .NET Core que simule algumas funcionalidades de um banco digital. Nesta simulação considere que não há necessidade de autenticação.
Você deverá garantir que o usuário conseguirá realizar uma movimentação de sua conta corrente para quitar uma dívida.
DADO QUE eu consuma a API
QUANDO eu chamar a mutation sacar
informando o número da conta e um valor válido
ENTÃO o saldo da minha conta no banco de dados diminuirá de acordo
E a mutation retornará o saldo atualizado.
DADO QUE eu consuma a API
QUANDO eu chamar a mutation sacar
informando o número da conta e um valor maior do que o meu saldo
ENTÃO a mutation me retornará um erro do GraphQL informando que eu não tenho saldo suficiente
DADO QUE eu consuma a API
QUANDO eu chamar a mutation depositar
informando o número da conta e um valor válido
ENTÃO a mutation atualizará o saldo da conta no banco de dados
E a mutation retornará o saldo atualizado.
DADO QUE eu consuma a API
QUANDO eu chamar a query saldo
informando o número da conta
ENTÃO a query retornará o saldo atualizado.
Banco de Dados
- Criado a aplicação e executado com o banco de dados em memória
- Banco de Dados em Memoria --- dotnet add package Microsoft.EntityFrameworkCore.InMemory
ORM
- Utilizado Entity Framework
Docker
- Baixar a imagem do Docker Hub
docker pull tiagobuchanelli/dockerapi:mytag
- Executar o container:
docker run -p 8080:80 tiagobuchanelli/dockerapi:mytag
Comandos Docker
- Gerar Imagem de acordo com Dockerfile: docker build -t tiagobuchanelli/dockerapi .
- Executar Container: docker run -p 8080:80 tiagobuchanelli/dockerapi
- Visualizar imagens criadas: docker images
- Visualizar containers: docker container ps -a
Insomnia
- Utilizado Insomnia para testar as requisições da API.
- Caso ocorrer erros referente a certificados, desabilitar a opção "Validate certificates" nas configurações do aplicativo.
- Criar Usuários
URL: http://localhost:8080/v1/usuarios
JSON:
{
"nome": "Fabiana",
"CPF": "01782863000"
}
- Criar Conta Corrente
URL: http://localhost:8080/v1/conta-corrente
JSON:
{
"titularId": 1,
"Agencia": 87878,
"Numero": 454545
}
- Realizar Depósito
URL: http://localhost:8080/v1/conta-corrente/depositar
JSON:
{
"Valor": 900.00,
"Numero": 454545
}
- Realizar Saque
URL: http://localhost:8080/v1/conta-corrente/sacar
JSON:
{
"Valor": 200.00,
"Numero": 454545
}
- Consultar Saldo
URL: http://localhost:8080/v1/conta-corrente/saldo/454545
- Outras Consultas:
[GET] URL: http://localhost:8080/v1/usuarios
[GET] URL: http://localhost:8080/v1/conta-corrente
- gh repo clone tiagobuchanelli/FuncionalHealthChallenge