API Fake
Esta funcionalidade permite que o usuário possa obter dados de uma API Rest fake, que pode retornar dados de clientes, produtos e pedidos. O objetivo é ser uma ferramenta útil para desenvolvimento frontend enquanto o backend não estiver pronto.
Como usar
Acesse as rotas descritas nas abas abaixo no seu frontend ou através de um cliente HTTP como o Postman. As requisições não são salvas no banco de dados, mas retornam os dados enviados na requisição com um ID aleatório. Isso permite que você teste a integração do frontend com a API sem se preocupar com a persistência dos dados.
O endpoint de autenticação permite simular o login de usuários. Use este recurso para testar a autenticação em seu frontend.
A API aceita qualquer email e senha.
Se o campo simulateError for enviado como true, a API retornará um erro 401.
Corpo da requisição:
{
"email": "joao.silva@email.com",
"senha": "123456"
}
Resposta esperada: {
"token": "jwt-token"
}
Simulação do erro:
{
"email": "joao.silva@email.com",
"senha": "123456",
"simulateError": true
}
Resposta esperada: {
"message": "Usuário ou senha inválidos"
}
O endpoint de clientes permite criar, listar, atualizar e deletar informações sobre clientes. Você pode testar as funcionalidades básicas de CRUD (Create, Read, Update e Delete) no seu frontend.
GET /api/clientesRetorna a lista de clientes cadastrados. Este endpoint suporta paginação para carregar registros de forma eficiente.
Utilize os parâmetros de query page e limit para especificar a pagina e o número de registros por página respectivamente.
Este endpoint suporta também filtro por nome, email e telefone. Utilize os parâmetros de query nome, email e telefone para filtrar os registros.
Exemplo: /api/clientes?page=1&limit=10&nome=joao&email=email.com&telefone=119
Este endpoint terá um total de 500 registros fixos.
Resposta esperada:
{
"data": [
{
"id": 1,
"nome": "João Silva",
"email": "joao.silva@email.com",
"telefone": "11987654321"
},
{
"id": 2,
"nome": "Maria Oliveira",
"email": "maria.oliveira@email.com",
"telefone": "11912345678"
}
],
"meta": {
"page": 1,
"limit": 10,
"total": 100
}
}
POST /api/clientes
Cadastra um cliente pelo ID. O cliente não será cadastrado, porém a api retornará o status 201 com os dados enviados na requisição, e um ID aleatório.
Corpo da requisição:
{
"nome": "João Silva",
"email": "joao.silva@email.com",
"telefone": "11987654321"
}
Resposta esperada:
{
"id": 1,
"nome": "João Silva",
"email": "joao.silva@email.com",
"telefone": "11987654321"
}
PUT /api/clientes/:id
Atualiza um cliente pelo ID. O cliente não será atualizado, porém a api retornará o status 204.
Corpo da requisição:
{
"nome": "João S.",
"email": "joao.s@email.com"
}
DELETE /api/clientes/:id
Exclui um cliente pelo ID. O cliente não será exclído, porém a api retornará o status 204.
O endpoint de produtos permite gerenciar informações relacionadas a itens disponíveis no sistema, como nome, preço e estoque. Use este recurso para simular catálogos ou listas de produtos.
GET /api/produtosRetorna a lista de produtos cadastrados. Este endpoint suporta paginação para carregar registros de forma eficiente.
Utilize os parâmetros de query page e limit para especificar a pagina e o número de registros por página respectivamente.
Este endpoint suporta também filtro por nome e preço. Utilize os parâmetros de query nome e preco para filtrar os registros.
Exemplo: /api/produtos?page=1&limit=10&nome=notebook
Resposta esperada:
{
"data": [
{
"id": 1,
"nome": "Notebook",
"preco": 3500.00,
"estoque": 15
},
{
"id": 2,
"nome": "Mouse",
"preco": 50.00,
"estoque": 100
}
],
"meta": {
"page": 1,
"limit": 10,
"total": 100
}
}
POST /api/produtos Cadastra um produto. O produto não será cadastrado, porém a api retornará o status 200 com os dados enviados na requisição, e um ID aleatório
Corpo da requisição:
{
"nome": "Notebook",
"preco": 3500.00,
"estoque": 15
}
Resposta esperada:
{
"id": 1,
"nome": "Notebook",
"preco": 3500.00,
"estoque": 15
}
PUT /api/produtos/:id
Atualiza um produto pelo ID. O produto não será atualizado, porém a api retornará o status 204.
Corpo da requisição:
{
"preco": 3200.00
}
DELETE /api/produtos/:id
Exclui um produto pelo ID. O produto não será excluído, porém a api retornará o status 204.
O endpoint de pedidos permite criar, listar, atualizar e excluir pedidos. Cada pedido está vinculado a um cliente e inclui uma lista de produtos e o total calculado.
GET /api/pedidosRetorna a lista de pedidos cadastrados.Este endpoint suporta paginação para carregar registros de forma eficiente.
Utilize os parâmetros de query page e limit para especificar a pagina e o número de registros por página respectivamente.
Exemplo: /api/pedidos?page=1&limit=10
Resposta esperada:
{
"data": [
{
"id": 1,
"clienteId": 1,
"produtos": [
{ "id": 1, "quantidade": 2, "preco": 3500.00 },
{ "id": 2, "quantidade": 1, "preco": 50.00 }
],
"total": 7050.00
},
{
"id": 2,
"clienteId": 2,
"produtos": [
{ "id": 1, "quantidade": 1, "preco": 3500.00 }
],
"total": 3500.00
}
],
"meta": {
"page": 1,
"limit": 10,
"total": 250
}
}
POST /api/pedidos Cria um novo pedido.O pedido não será cadastrado, porém a api retornará o status 200 com os dados enviados na requisição, e um ID aleatório.
Corpo da requisição:
{
"clienteId": 1,
"produtos": [
{ "id": 1, "quantidade": 2 },
{ "id": 2, "quantidade": 1 }
]
}
Resposta esperada:
{
"id": 1,
"clienteId": 1,
"produtos": [
{ "id": 1, "quantidade": 2, "preco": 3500.00 },
{ "id": 2, "quantidade": 1, "preco": 50.00 }
],
"total": 7050.00
}
PUT /api/pedidos/:id
Atualiza um pedido pelo ID.O pedido não será atualizado, porém a api retornará o status 204.
Corpo da requisição:
{
"id": 1,
"produtos": [
{ "id": 1, "quantidade": 1 }
]
}
DELETE /api/pedidos/:id
Exclui um pedido pelo ID. O pedido não será excluído, porém a api retornará o status 204.