Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/heitorgandolfi/api-levva-coins
API para aplicação de gerenciamento financeiro.
https://github.com/heitorgandolfi/api-levva-coins
api
Last synced: about 15 hours ago
JSON representation
API para aplicação de gerenciamento financeiro.
- Host: GitHub
- URL: https://github.com/heitorgandolfi/api-levva-coins
- Owner: heitorgandolfi
- License: mit
- Created: 2023-06-13T19:17:48.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-06-20T16:57:31.000Z (over 1 year ago)
- Last Synced: 2024-11-07T00:13:43.475Z (about 15 hours ago)
- Topics: api
- Language: C#
- Homepage:
- Size: 39.1 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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**:
```json
{
"email": "[email protected]",
"password": "123456"
}
```**Resposta 200**:
```json
{
"id": "uuid-v4",
"email": "[email protected]",
"token": "bearer.token",
"avatar": "https://images.com/image1"
}
```**Resposta 401**:
```json
{
"hasError": true,
"message": "Usuário ou senha inválidos."
}
```Criar Usuário
**Host**: `http://localhost:3333/api`
**Endpoint**: `/user`
**Método**: `POST`
**Requisição**:
```json
{
"name": "John Doe",
"email": "[email protected]",
"password": "123456",
"avatar": "https://images.com/image1"
}
```**Resposta 201**:
N/A
**Resposta 400**:
```json
{
"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**:
```plaintext
URL Params:
userId (uuid-v4)Headers:
{
"authorization": "Bearer bearer.token"
}
```**Resposta 200**:
```json
{
"id": "uuid-v4",
"name": "John Doe",
"email": "[email protected]",
"avatar": "https://images.com/image1"
}
```**Resposta 400**:
```json
{
"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**:
```plaintext
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**:
```json
{
"hasError": true,
"message": "Esse usuário não existe."
}
```Criar Categoria
**Host**: `http://localhost:3333/api`
**Endpoint**: `/category`
**Método**: `POST`
**Requisição**:
```json
{
"description": "Alimentação"
}Headers:
{
"authorization": "Bearer bearer.token"
}
```**Resposta 201**:
N/A
**Resposta 400**:
```json
{
"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**:
```plaintext
Headers:
{
"authorization": "Bearer bearer.token"
}
```**Resposta 200**:
```json
[
{
"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**:
```json
{
"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**:
```plaintext
Headers:
{
"authorization": "Bearer bearer.token"
}
```**Resposta 200**:
```json
[
{
"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:
```plaintext
{
"authorization": "Bearer bearer.token"
}
```**Resposta 204**:
N/A
**Resposta 400**:
```json
{
"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:
```plaintext
git clone https://github.com/heitorgandolfi/Levva-Coins-Api.git
```2. Abra o projeto em sua IDE preferida (por exemplo, Visual Studio ou Visual Studio Code).
3. 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.4. 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:
```plaintext
dotnet ef database update
```5. Inicie o servidor:
No Visual Studio Code, execute o seguinte comando no Terminal:
```plaintext
dotnet run
```No Visual Studio, basta pressionar o botão "Executar" ou "Iniciar" (F5).
## Licença
[MIT License](LICENSE)