Loading repository data…
Loading repository data…
Thormes / repository
Projeto desenvolvido para o Desafio Backend 4 da Alura
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
API REST desenvolvida durante o Desafio da Alura utilizando Laravel 9.x e PHP 8.0.13.
Com exceção do login, e registro, todos os endpoints somente podem ser consumidos por usuários autenticados, enviando o cabeçalho de requisição Authorization com a informação Bearer <<JWTToken>>.
Todas as rotas de autenticação funcionam exclusivamente com o método POST
| Rota | Serviço | Parâmetros | Resposta(s) |
|---|---|---|---|
| /auth/login | Realiza o login do usuário | Corpo/JSON (necessários): "email" (string), "password" (string) | 200 - Sucesso 401 - Login mal sucedido |
| /auth/register | Realiza o cadastro de usuário | Corpo/JSON (necessários): "email" (string), "password" (string, min. 8 caracteres), "nome" (string) | 201 - Sucesso 422 - Email já cadastrado |
| /auth/refresh | Atualiza a validade do token do usuário (padrão 1h) | Cabeçalho com o token | 200 - Sucesso |
| /auth/logout | Invalida o token | Cabeçalho com o token | 200 - Sucesso |
| /auth/me | Retorna o usuário logado | Cabeçalho com o token | 200 - Sucesso |
| Método | Serviço | Parâmetros | Resposta(s) |
|---|---|---|---|
| POST | Registro de uma receita | Corpo/JSON (necessários): "descricao" (string), "valor" (float), "data" (string formato "dd/mm/yyyy") | 201 - Sucesso 409 - Já existente com mesma descrição, no mesmo mês 422 - Ausente algum dos parâmetros |
| GET | Pesquisa de receitas do usuário | Query (opcional): "descricao", para filtrar | 200 - Sucesso (15 por página) |
| Método | Serviço | Parâmetros | Resposta(s) |
|---|---|---|---|
| GET | Busca receita especificada | 200 - Sucesso 404 - Receita não encontrada (ou não foi registrada pelo usuário) | |
| PUT | Atualização de uma receita | Corpo/JSON (necessários): "descricao" (string), "valor" (float), "data" (string formato "dd/mm/yyyy") | 200 - Sucesso 409 - Já existente com mesma descrição, no mesmo mês 422 - Ausente algum dos parâmetros 403 - Receita pertence a outro usuário |
| DELETE | Apaga uma receita | 200 - Sucesso 403 - Receita pertence a outro usuário |
| Método | Serviço | Parâmetros | Resposta(s) |
|---|---|---|---|
| GET | Busca receitas registradas pelo usuário no ano (integer) e mês (integer) informados | 200 - Sucesso |
| Método | Serviço | Parâmetros | Resposta(s) |
|---|---|---|---|
| POST | Registro de uma despesa | Corpo/JSON (necessários): "descricao" (string), "valor" (float), "data" (string formato "dd/mm/yyyy") Opcionais: "fixa" (boolean), "categoria"* (string) | 201 - Sucesso 409 - Já existente com mesma descrição, no mesmo mês 422 - Ausente algum dos parâmetros |
| GET | Pesquisa de receitas do usuário | Query (opcional - filtros aceitos): "descricao", "categoria" | 200 - Sucesso (15 por página) |
* Categorias aceitas:
Alimentação
Saúde
Moradia
Transporte
Educação
Lazer
Imprevistos
Outras
| Método | Serviço | Parâmetros | Resposta(s) |
|---|---|---|---|
| GET | Busca despesa especificada | 200 - Sucesso 404 - Despesa não encontrada (ou não foi registrada pelo usuário) | |
| PUT | Atualização de uma despesa | Corpo/JSON (necessários): "descricao", "valor", "data" (formato "dd/mm/yyyy") | 200 - Sucesso 409 - Já existente com mesma descrição, no mesmo mês 422 - Ausente algum dos parâmetros 403 - Despesa pertence a outro usuário |
| DELETE | Apaga uma despesa | 200 - Sucesso 403 - Despesa pertence a outro usuário |
| Método | Serviço | Parâmetros | Resposta(s) |
|---|---|---|---|
| GET | Busca despesas registradas pelo usuário no ano (integer) e mês (integer) informados | 200 - Sucesso |
| Método | Serviço | Parâmetros | Resposta(s) |
|---|---|---|---|
| GET | Traz um resumo com o valor total das receitas e despesas do usuário no ano (integer) e mês (integer) informados, com registro de despesas agrupadas por categoria e saldo final no mês | 200 - Sucesso |
Exemplo de resposta:
Composer
php 8.0
Banco de Dados (padrão é mysql)
git clone https://github.com/Thormes/controle-financeiro.git
composer install
Configuração de Banco de Dados Laravel
php artisan migrate
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"
php artisan jwt:secret
php artisan serve