Para iniciar o backend, siga os passos abaixo:
-
Clone o repositório:
git clone <URL_DO_REPOSITORIO>
-
Entre no diretório do projeto:
cd nome-do-projeto
-
Instale as dependências:
npm install
-
Crie um arquivo
.env
na raiz do projeto e adicione a variávelJWT_SECRET
:JWT_SECRET=seu_segredo_jwt
O backend utiliza Prisma como ORM para interagir com o banco de dados. Siga os passos abaixo para configurar o Prisma e rodar as migrations:
-
Gerar as migrations:
Após configurar o banco de dados, rode o comando abaixo para gerar as migrations:
npx prisma migrate dev --name init
Esse comando criará as tabelas necessárias no banco de dados conforme o esquema definido no arquivo
prisma/schema.prisma
. -
Rodar as migrations:
Para aplicar as migrations e preparar o banco de dados, rode o comando:
npx prisma migrate deploy
-
Verificar a instalação do Prisma:
Você pode verificar o estado do banco de dados e a estrutura das tabelas usando o Prisma Studio:
npx prisma studio
Isso abrirá uma interface gráfica no navegador onde você pode explorar o banco de dados.
Este backend utiliza apenas uma variável de ambiente:
-
JWT_SECRET
: Esta variável armazena o segredo usado para assinar o token JWT. voce pode acessar :https://www.md5hashgenerator.com/
O backend possui um sistema básico de autenticação com JWT. As seguintes rotas estão disponíveis:
-
Criar Usuário:
POST /api/auth/register
- Body:
{ "name": "seu_usuario", "password": "sua_senha", "email":"seu_email" }
- Resposta:
{ "message": "Usuário criado com sucesso." }
- Body:
-
Login:
POST /api/auth/login
- Body:
{ "email": "seu_email", "password": "sua_senha" }
- Resposta:
{ "token": "jwt_token" }
- Body:
As rotas de produtos permitem criar, editar, deletar e buscar produtos. As rotas de criação, edição e deleção são autenticadas, exigindo um token JWT válido. A rota de busca é aberta ao público.
- Rota Autenticada
- Método:
POST
- Endpoint:
/api/products
- Body:
{ "name": "nome_produto", "price": "preco_produto", "description": "descricao_produto" }
- Headers:
Authorization: Bearer {token}
- Resposta:
{ "message": "Produto criado com sucesso." }
- Rota Autenticada
- Método:
PUT
- Endpoint:
/api/products/:id
- Body:
{ "name": "novo_nome", "price": "novo_preco", "description": "nova_descricao" }
- Headers:
Authorization: Bearer {token}
- Resposta:
{ "message": "Produto atualizado com sucesso." }
- Rota Autenticada
- Método:
DELETE
- Endpoint:
/api/products/:id
- Headers:
Authorization: Bearer {token}
- Resposta:
{ "message": "Produto deletado com sucesso." }
- Rota Aberta
- Método:
GET
- Endpoint:
/api/products
- Resposta:
[{ "id": 1, "name": "nome_produto", "price": "preco_produto", "description": "descricao_produto" }, ...]
Essa documentação fornece uma visão geral rápida de como configurar e interagir com o backend. Para detalhes adicionais ou customizações, é recomendável revisar o código fonte do projeto.