My Notes é uma API desenvolvida em Node.js com Prisma e JavaScript. Esta API permite que os usuários criem, editem, excluam e listem notas pessoais. Além disso, implementa autenticação com JWT e armazenamento seguro de senhas com bcrypt.
- Node.js: Ambiente de execução JavaScript no servidor.
- JavaScript: Linguagem de programação utilizada para desenvolver a lógica do servidor e interagir com o cliente.
- Prisma: ORM para interagir com o banco de dados MySQL.
- MySQL: Sistema de gerenciamento de banco de dados utilizado.
- JWT (JSON Web Token): Para autenticação de usuários.
- bcrypt: Para hash e comparação de senhas.
Clone o repositório:
git clone https://github.com/LiviaBrito7/myNotes-api.git
cd my-notes-apiInstale as dependências:
npm installConfigure o arquivo .env:
Crie um arquivo .env na raiz do projeto com a seguinte configuração:
DATABASE_URL="mysql://user:password@localhost:3306/my_database"
JWT_SECRET="your_jwt_secret"
Nota: Substitua your_jwt_secret por um segredo forte para geração dos tokens JWT.
Rode as migrations para criar as tabelas no banco de dados:
npx prisma migrate devInicie o servidor:
npm run devO servidor estará rodando em http://localhost:3000.
- URL:
/users/register - Método: POST
- Body:
{
"name": "Seu Nome",
"email": "email@example.com",
"password": "senha-segura"
}- URL:
/users/login - Método: POST
- Body:
{
"email": "email@example.com",
"password": "senha-segura"
}- Resposta: JWT Token
{
"token": "seu_jwt_token"
}- URL:
/users/me - Método: GET
- Headers:
Authorization: Bearer <token>
- URL:
/users - Método: GET
- Headers:
Authorization: Bearer <token>
- URL:
/users/:id - Método: PUT
- Headers:
Authorization: Bearer <token> - Body:
{
"name": "Novo Nome",
"email": "novoemail@example.com",
"password": "nova-senha-segura"
}- URL:
/users/:id - Método: DELETE
- Headers:
Authorization: Bearer <token> - Resposta:
{
"message": "Usuário excluído com sucesso."
}- URL: /notes
- Método: POST
- Headers: Authorization: Bearer
- Body:
{
"title": "Minha nota",
"content": "Este é o conteúdo da nota."
}- URL: /notes
- Método: GET
- Headers: Authorization: Bearer
- URL: /notes/:id
- Método: PUT
- Headers: Authorization: Bearer
- Body:
{
"title": "Novo título",
"content": "Novo conteúdo"
}- URL: /notes/:id
- Método: DELETE
- Headers: Authorization: Bearer