Este é um projeto de uma API Rest desenvolvida utilizando o framework NestJS e o banco de dados MongoDB. O objetivo do projeto é fornecer um único endpoint que recebe uma URL pública de uma imagem JPG, salva essa imagem no sistema de arquivos, gera uma versão reduzida da imagem e armazena os metadados contidos no EXIF da imagem original em uma instância do MongoDB.
Antes de executar o projeto, certifique-se de ter as seguintes dependências instaladas:
Node.js
(versão 12 ou superior)NPM
(gerenciador de pacotes do Node.js)MongoDB
(instância local ou remota)
Siga as etapas abaixo para executar o projeto em sua máquina local:
Execute os seguintes comandos a partir da pasta raiz do projeto:
git clone git@github.com:anaelisaq/image-api.git
cd image-api
npm install
- Renomeie o arquivo
.env.example
para.env
. - Edite o arquivo
.env
e configure as variáveis de ambiente necessárias, como a URL do banco de dados MongoDB que estão divulgados a nível de teste da aplicação.
npm run start
ou
npm run start:dev
-
POST /image/save
: Realiza o upload de uma imagem a partir de uma URL pública. A imagem é salva no sistema de arquivos, uma versão reduzida é gerada e os metadados do EXIF são armazenados no MongoDB. -
localhost:${PORT}/api-docs
: Swagger com endpoint funcional.
A estrutura de pastas do projeto é organizada da seguinte maneira:
📂 assets
📂 src
┣ 📂 config
┃ ┗ 📜 swagger.ts
┣ 📂 image
┃ ┣ 📂 dtos
┃ ┃ ┗ 📜 image-update.dto.ts
┃ ┣ 📜 image-upload.service.ts
┃ ┣ 📜 image.controller.ts
┃ ┣ 📜 image.module.ts
┃ ┗ 📜 image.schema.ts
┣ 📜 app.module.ts
┗ 📜 main.ts
📂 test
┣ 📜 image.controller.spec.ts
📂 uploads
📜 .env.example