heitorgandolfi / API-levva-coins

API para aplicação de gerenciamento financeiro.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

API Levva Coins

Este projeto consiste em uma API construída para lidar com uma aplicação financeira, oferecendo recursos para o controle do usuário em relação às suas transações, entradas e saídas.

Contratos

Login

Host: http://localhost:3333/api

Endpoint: /auth

Método: POST

Requisição:

{
  "email": "email@example.com",
  "password": "123456"
}

Resposta 200:

{
  "id": "uuid-v4",
  "email": "email@example.com",
  "token": "bearer.token",
  "avatar": "https://images.com/image1"
}

Resposta 401:

{
  "hasError": true,
  "message": "Usuário ou senha inválidos."
}
Criar Usuário

Host: http://localhost:3333/api

Endpoint: /user

Método: POST

Requisição:

{
  "name": "John Doe",
  "email": "email@example.com",
  "password": "123456",
  "avatar": "https://images.com/image1"
}

Resposta 201:

N/A

Resposta 400:

{
  "hasError": true,
  "message": "Esse e-mail já existe."
}
Obter um Usuário

Host: http://localhost:3333/api

Endpoint: /user/:userId

Método: GET

Requisição:

URL Params:
userId (uuid-v4)

Headers:
{
  "authorization": "Bearer bearer.token"
}

Resposta 200:

{
  "id": "uuid-v4",
  "name": "John Doe",
  "email": "email@example.com",
  "avatar": "https://images.com/image1"
}

Resposta 400:

{
  "hasError": true,
  "message": "Esse usuário não existe."
}
Atualizar um Usuário

Host: http://localhost:3333/api

Endpoint: /user/:userId

Método: PUT

Requisição:

URL Params:
userId (uuid-v4)

Body:

{
  "avatar": "https://images.com/image1",
  "name": "John Doe"
}

Headers:
{
  "authorization": "Bearer bearer.token"
}

Resposta 204:

N/A

Resposta 400:

{
  "hasError": true,
  "message": "Esse usuário não existe."
}
Criar Categoria

Host: http://localhost:3333/api

Endpoint: /category

Método: POST

Requisição:

{
  "description": "Alimentação"
}

Headers:
{
  "authorization": "Bearer bearer.token"
}

Resposta 201:

N/A

Resposta 400:

{
  "hasError": true,
  "message": "Uma categoria com esse nome já existe."
}
Obter todas as Categorias

Host: http://localhost:3333/api

Endpoint: /category

Método: GET

Requisição:

Headers:
{
  "authorization": "Bearer bearer.token"
}

Resposta 200:

[
  {
    "id": "uuid-v4",
    "description": "Café"
  },
  {
    "id": "uuid-v4",
    "description": "Alimentação"
  },
  {
    "id": "uuid-v4",
    "description": "Casa"
  }
]
Criar Transação

Host: http://localhost:3333/api

Endpoint: /transaction

Método: POST

Requisição:

{
  "description": "Pizza com amigos",
  "amount": 100,
  "type": "Depósito", // ou "Crédito"
  "categoryId": "uuid-v4"
}

Headers:
{
  "authorization": "Bearer bearer.token"
}

Resposta 201:

N/A

Obter todas as Transações

Host: http://localhost:3333/api

Endpoint: /transaction

Método: GET

Requisição:

Headers:
{
  "authorization": "Bearer bearer.token"
}

Resposta 200:

[
  {
    "id": "uuid-v4",
    "description": "Café com amigos",
    "amount": 50,
    "type": "Depósito",
    "categoryId": "uuid-v4"
  },
  {
    "id": "uuid-v4",
    "description": "Pizza com amigos",
    "amount": 100,
    "type": "Depósito",
    "categoryId": "uuid-v4"
  },
  {
    "id": "uuid-v4",
    "description": "Salário março 2023",
    "amount": 1200,
    "type": "Crédito",
    "categoryId": "uuid-v4"
  }
]
Remover Transação

Host: http://localhost:3333/api

Endpoint: /transaction/:transactionId

Método: DELETE

Requisição:

URL Params:

  • transactionId (uuid-v4)

Headers:

{
  "authorization": "Bearer bearer.token"
}

Resposta 204:

N/A

Resposta 400:

{
  "hasError": true,
  "message": "Essa transação não existe."
}

Tecnologias Utilizadas

  • C# .NET
  • ASP.NET Core
  • Entity Framework Core
  • Swagger
  • SQlite
  • JSON Web Token (JWT)

Como Rodar o Projeto Localmente

  1. Clone o repositório:
git clone https://github.com/heitorgandolfi/Levva-Coins-Api.git
  1. Abra o projeto em sua IDE preferida (por exemplo, Visual Studio ou Visual Studio Code).

  2. Configure o banco de dados:

Verifique se você tem o SQLite Server instalado. No arquivo appsettings.json, verifique e atualize a string de conexão com o banco de dados.

  1. Execute as migrações do banco de dados:

Abra o Terminal (no Visual Studio Code) ou o Console do Gerenciador de Pacotes (no Visual Studio).

Execute o seguinte comando:

dotnet ef database update
  1. Inicie o servidor:

No Visual Studio Code, execute o seguinte comando no Terminal:

dotnet run

No Visual Studio, basta pressionar o botão "Executar" ou "Iniciar" (F5).

Licença

MIT License

About

API para aplicação de gerenciamento financeiro.

License:MIT License


Languages

Language:C# 100.0%