A Dindin API é um sistema de controle de gastos pessoais desenvolvido como resultado do Desafio do Módulo 3 do curso de Desenvolvimento de Software com foco em Backend da Cubos Academy. Seu principal objetivo é proporcionar uma oportunidade prática para que os estudantes possam aplicar as técnicas e conceitos aprendidos em sala de aula. Embora esta API possa parecer simples em sua funcionalidade, ela representa um modelo útil para estudantes que desejam aprofundar seus conhecimentos em desenvolvimento de software, especialmente no contexto de backend.
Aqui, você encontrará informações detalhadas sobre todos os endpoints disponíveis, permitindo que você compreenda e explore como esta API pode ser usada para criar aplicativos de controle financeiro pessoal. Neste guia, iremos abordar os recursos disponíveis e como utilizá-los para melhorar suas habilidades de desenvolvimento de software.
Desenvolvedores:Este endpoint é usado para cadastrar um novo usuário no sistema.
{
"nome": "João Silva",
"email": "joao@example.com",
"senha": "senha123"
}
{
"id": 1,
"nome": "João Silva",
"email": "joao@example.com"
}
Este endpoint permite que um usuário faça login no sistema.
{
"email": "joao@example.com",
"senha": "senha123"
}
{
"usuario": {
"id": 3,
"nome": "João Silva",
"email": "joao@example.com"
},
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MywiaWF0IjoxNjk0NTQyNzEyLCJleHAiOjE2OTQ2MjkxMTJ9.oOyebU8i04jtI1lm1HPOw6z1unqUe4keogH9pyo3JJQ"
}
Retorna os dados do perfil do usuário logado.
Método: GET
Atenção: É obrigatório o envio do token de autenticação via header (Bearer Token) da requisição
Sucesso (HTTP Status 200 / 201 / 204):
json
{
"id": 1,
"nome": "José",
"email": "jose@email.com"
}
Falha na Validação (HTTP Status 400 / 401 / 403 / 404):
json
{
"mensagem": "Para acessar este recurso, um token de autenticação válido deve ser enviado."
}
Permite que o usuário logado atualize seu próprio perfil.
Método: PUT
Atenção: É obrigatório o envio do token de autenticação via header (Bearer Token) da requisição
Corpo da Requisição (JSON):
json
{
"nome": "José de Abreu",
"email": "jose_abreu@email.com",
"senha": "j4321"
}
Sucesso (HTTP Status 200 / 201 / 204):
json
// Sem conteúdo no corpo (body) da resposta
Falha na Validação (HTTP Status 400 / 401 / 403 / 404):
json
{
"mensagem": "O e-mail informado já está sendo utilizado por outro usuário."
}
Essa rota permite ao usuário logado listar todas as categorias cadastradas.
Método: GET
Atenção: É obrigatório o envio do token de autenticação via header (Bearer Token) da requisição
Parâmetros de rota: Nenhum
Parâmetros de consulta: Nenhum
Corpo da requisição: Nenhum
Em caso de sucesso (HTTP Status 200 / 201 / 204), o corpo da resposta conterá um array de objetos representando as categorias cadastradas.
Exemplo de requisição:
json
Endpoint: GET https://dindin-api.cyclic.cloud/categoria
Exemplo de resposta de sucesso:
json
HTTP Status 200 / 201 / 204
[
{
"id": 1,
"descricao": "Roupas"
},
{
"id": 2,
"descricao": "Mercado"
}
]
Em caso de falha (HTTP Status 400 / 401 / 403 / 404), o corpo da resposta conterá uma mensagem de erro apropriada.
Método: GET
Atenção: É obrigatório o envio do token de autenticação via header (Bearer Token) da requisição
Parâmetros de rota: Nenhum
Parâmetros de consulta:
filtro (array de strings, opcional): Um array contendo a descrição de uma ou mais categorias pelas quais as transações devem ser filtradas.
Exemplo de requisição:
json
GET https://dindin-api.cyclic.cloud/transacao?filtro[]=roupas&filtro[]=salarios
Em caso de sucesso (HTTP Status 200 / 201 / 204), o corpo da resposta conterá um array de objetos representando as transações que atendem aos critérios de filtro.
Exemplo de resposta de sucesso:
json
HTTP Status 200 / 201 / 204
[
{
"id": 1,
"tipo": "saida",
"descricao": "Sapato amarelo",
"valor": 15800,
"data": "2022-03-23T15:35:00.000Z",
"usuario_id": 5,
"categoria_id": 4,
"categoria_nome": "Roupas"
},
{
"id": 3,
"tipo": "entrada",
"descricao": "Salário",
"valor": 300000,
"data": "2022-03-24T15:30:00.000Z",
"usuario_id": 5,
"categoria_id": 6,
"categoria_nome": "Salários"
}
]
Em caso de falha, o corpo da resposta conterá a seguinte mensagem: "Categoria não encontrada".
Lista todas as transações associadas ao usuário logado.
Método: GET
Atenção: É obrigatório o envio do token de autenticação via header (Bearer Token) da requisição
Sucesso (HTTP Status 200 / 201 / 204):
json
[
{
"id": 1,
"tipo": "saida",
"descricao": "Sapato amarelo",
"valor": 15800,
"data": "2022-03-23T15:35:00.000Z",
"usuario_id": 5,
"categoria_id": 4,
"categoria_nome": "Roupas"
},
{
"id": 3,
"tipo": "entrada",
"descricao": "Salário",
"valor": 350000,
"data": "2022-03-01T08:15:00.000Z",
"usuario_id": 5,
"categoria_id": 1,
"categoria_nome": "Salário"
}
]
Falha na Validação (HTTP Status 400 / 401 / 403 / 404):
json
{
"mensagem": "Para acessar este recurso, um token de autenticação válido deve ser enviado."
}
Permite que o usuário logado registre uma nova transação.
Método: POST
Atenção: É obrigatório o envio do token de autenticação via header (Bearer Token) da requisição
Corpo da Requisição (JSON):
json
{
"tipo": "saida",
"descricao": "Compras no mercado",
"valor": 25000,
"data": "2022-03-10",
"categoria_id": 2
}
Sucesso (HTTP Status 200 / 201 / 204):
json
{
"id": 4,
"tipo": "saida",
"descricao": "Compras no mercado",
"valor": 25000,
"data": "2022-03-10T00:00:00.000Z",
"usuario_id": 5,
"categoria_id": 2,
"categoria_nome": "Mercado"
}
Falha na Validação (HTTP Status 400 / 401 / 403 / 404):
json
{
"mensagem": "Erro de validação: O campo 'data' é obrigatório."
}
Essa rota permite ao usuário logado obter detalhes de uma transação específica associada a eles.
Método: GET
Atenção: É obrigatório o envio do token de autenticação via header (Bearer Token) da requisição
Parâmetros de rota:
id (integer): O ID da transação que se deseja detalhar.
Corpo da requisição: Nenhum
Em caso de sucesso (HTTP Status 200 / 201 / 204), o corpo da resposta conterá um objeto representando os detalhes da transação.
Exemplo de requisição:
json
Endpoint: GET https://dindin-api.cyclic.cloud/transacao/2
Exemplo de resposta de sucesso:
json
HTTP Status 200 / 201 / 204
{
"id": 2,
"tipo": "saida",
"descricao": "Compra de roupas",
"valor": 100.0,
"data": "2023-09-10",
"categoria_id": 1,
"categoria_nome": "Vestuário"
}
Essa rota permite ao usuário logado cadastrar uma nova transação associada a eles.
Método: POST
Atenção: É obrigatório o envio do token de autenticação via header (Bearer Token) da requisição
Parâmetros de rota: Nenhum
Parâmetros de consulta: Nenhum
Corpo da requisição:
json
{
"tipo": "entrada",
"descricao": "Salário",
"valor": 3000.0,
"data": "2023-09-15",
"categoria_id": 2
}
Em caso de sucesso (HTTP Status 200 / 201 / 204), o corpo da resposta conterá um objeto representando os detalhes da transação recém-cadastrada, incluindo o seu ID.
Exemplo de requisição:
json
Endpoint: POST https://dindin-api.cyclic.cloud/transacao
{
"tipo": "entrada",
"descricao": "Salário",
"valor": 3000.0,
"data": "2023-09-15",
"categoria_id": 2
}
Exemplo de resposta de sucesso:
json
HTTP Status 200 / 201 / 204
{
"id": 5,
"tipo": "entrada",
"descricao": "Salário",
"valor": 3000.0,
"data": "2023-09-15",
"categoria_id": 2,
"categoria_nome": "Salários"
}
Essa rota permite ao usuário logado atualizar uma transação existente associada a eles.
Método: PUT
Atenção: É obrigatório o envio do token de autenticação via header (Bearer Token) da requisição
Parâmetros de rota:
id (integer): O ID da transação que se deseja atualizar.
Corpo da requisição:
json
{
"tipo": "saida",
"descricao": "Compra de eletrônicos",
"valor": 500.0,
"data": "2023-09-20",
"categoria_id": 3
}
Em caso de sucesso (HTTP Status 200 / 201 / 204), o corpo da resposta conterá um objeto representando os detalhes da transação atualizada.
Exemplo de requisição:
json
Endpoint: PUT https://dindin-api.cyclic.cloud/transacao/5
{
"tipo": "saida",
"descricao": "Compra de eletrônicos",
"valor": 500.0,
"data": "2023-09-20",
"categoria_id": 3
}
Exemplo de resposta de sucesso:
json
HTTP Status 200 / 201 / 204
{
"id": 5,
"tipo": "saida",
"descricao": "Compra de eletrônicos",
"valor": 500.0,
"data": "2023-09-20",
"categoria_id": 3,
"categoria_nome": "Eletrônicos"
}
Essa rota permite ao usuário logado excluir uma transação existente associada a eles.
Método: DELETE
Atenção: É obrigatório o envio do token de autenticação via header (Bearer Token) da requisição
Parâmetros de rota:
id (integer): O ID da transação que se deseja excluir.
Corpo da requisição: Nenhum
Em caso de sucesso (HTTP Status 200 / 201 / 204), o corpo da resposta será vazio.
Exemplo de requisição:
json
Endpoint: DELETE https://dindin-api.cyclic.cloud/transacao/5
Exemplo de resposta de sucesso:
json
HTTP Status 200 / 201 / 204
{}