Este é um projeto de uma API RESTful desenvolvida em TypeScript/Express utilizando do Docker Compose para comunicação da API com o banco MongoDB. Ela fornece endpoints para criação, alteração, listagem e deleção de posts. Bem como a criação e deleção de comentários em um post.
- Clone este repositório em sua máquina local usando o comando:
git clone https://github.com/caiosdeo/posts-comments-api.git
- Navegue até o diretório do projeto:
cd posts-comments-api
-
Antes de rodar a API, certifique-se de configurar as variáveis de ambiente necessárias. Você pode encontrar as variáveis de ambiente necessárias no email enviado, necessitando apenas preenchê-las de acordo com o
.env.example
presente no repositório. O arquivo .env deve ser criado na raiz do projeto. -
Instale as dependências do projeto:
npm install
- Para finalizar a instalação e executar a API, basta usar o Docker Compose:
docker compose up -d
- Para saber se já é possível usar a API, é só utilizar os logs:
docker compose logs api
Utilizando do Postman, você pode utilizar a seguinte coleção para testar os endpoints da API, é necessário exportar ela e importar a mesma localmente:
A URL base para todos os endpoints é: http://localhost:8080
.
Endpoint para listar todos os usuários cadastrados.
- URL:
/posts
- Método: GET
- Parâmetros de Consulta:
pageNumber
(opcional): Número da página para paginação (padrão: 1)pageSize
(opcional): Limite de resultados por página (padrão: 10)
Endpoint para criar um novo post.
- URL:
/posts
- Método: POST
- Corpo da requisição:
{
"title": "Titulo do post",
"author": "Autor do post",
"content": "Conteúdo do post"
}
Endpoint para obter os detalhes de um post específico.
- URL:
/posts/:postId
- Método: GET
- Parâmetros de rota:
id
do post
Endpoint para atualizar os dados de um post existente.
- URL:
/posts/:postId
- Método: PATCH
- Parâmetros de rota:
id
do post - Corpo da Requisição:
{
"title": "Titulo do post (opcional)",
"author": "Autor do post (opcional)",
"content": "Conteúdo do post (opcional)"
}
Endpoint para deletar um post específico.
- URL:
/posts/:postId
- Método: DELETE
- Parâmetros de rota:
id
do post
Endpoint para listar todos os usuários cadastrados.
- URL:
/posts
- Método: GET
- Parâmetros de Consulta:
pageNumber
(opcional): Número da página para paginação (padrão: 1)pageSize
(opcional): Limite de resultados por página (padrão: 10)
Endpoint para criar um novo post.
- URL:
/posts
- Método: POST
- Corpo da requisição:
{
"title": "Titulo do post",
"author": "Autor do post",
"content": "Conteúdo do post"
}
Endpoint para deletar um post específico.
- URL:
/posts/:postId
- Método: DELETE
- Parâmetros de rota:
id
do post