Este projeto consiste na implementação de uma API RESTful utilizando Node.js que permite a criação e listagem de posts e comentários. Cada comentário pertence a um post. A API oferece endpoints para um CRUD completo de posts (Criar, Listar, Atualizar e Apagar) e para adicionar e apagar comentários em posts específicos.
- Clone o repositório:
git clone https://github.com/lucascafeee/smart-project.git
- Navegue até o diretório do projeto:
cd smart-project
- Instale as dependências:
npm install
Certifique-se de ter Docker e Docker Compose instalados. Caso queira usar o docker
- Inicie o servidor:
npm start
- Acesse a API em:
http://localhost:3000
- Posts:
- Criar um post
- Listar posts
- Atualizar um post
- Apagar um post
- Comentários:
- Adicionar um comentário a um post
- Apagar um comentário de um post
-
Configuração do banco de dados: Crie um arquivo
.env
na raiz do projeto com as seguintes variáveis:DB_NAME= DB_USER= DB_PASS= DB_HOST= DB_DIALECT= PORT=
-
Docker (Opcional):
- Dockerizar o ambiente: Utilize o arquivo
Dockerfile
edocker-compose.yml
fornecidos para configurar o ambiente Docker. - Substituir MySQL por MongoDB: Caso deseje utilizar o MongoDB, ajuste as configurações conforme necessário.
- docker-compose up --build: Construir e iniciar os containers;
- docker-compose down: Parar os containers;
- Dockerizar o ambiente: Utilize o arquivo
-
Endpoints:
Posts:
-
Criar um post:
POST /posts
-
Listar posts:
GET /posts
-
Atualizar um post:
PUT /posts/:id
-
Apagar um post:
DELETE /posts/:id
Comentários:
-
Adicionar um comentário a um post:
POST /posts/:postId/comments
-
Apagar um comentário de um post:
DELETE /posts/:postId/comments/:commentId
-
-
Criar um post:
curl -X POST http://localhost:3000/posts -d '{ "title": "Novo Post", "content": "Conteúdo do post"}' -H "Content-Type: application/json"
-
Listar posts:
curl -X GET http://localhost:3000/posts
-
Adicionar um comentário a um post:
curl -X POST http://localhost:3000/posts/1/comments -d '{"content": "Comentário"}' -H "Content-Type: application/json"
-
Atualizar um post:
curl -X PUT http://localhost:3000/posts/1 -d '{ "title": "Título Atualizado", "content": "Conteúdo atualizado"}' -H "Content-Type: application/json"
-
Apagar um post:
curl -X DELETE http://localhost:3000/posts/1
-
Apagar um comentário de um post:
curl -X DELETE http://localhost:3000/posts/1/comments/1