Skip to content

webrcost4/devnotes-api

Repository files navigation

devnotes-api

devnotes-api é uma API REST simples criada para permitir que desenvolvedores salvem anotações técnicas pessoais, como snippets, comandos, referências e pequenos lembretes de estudo.

A ideia do projeto é demonstrar uma estrutura backend organizada, com separação clara de responsabilidades e boas práticas comuns em APIs Node.js.

O projeto utiliza uma arquitetura em camadas simples para manter o código fácil de entender:

  • routes definem os endpoints da API
  • controllers lidam com requisições e respostas HTTP
  • services contêm a lógica da aplicação
  • models definem a estrutura dos dados no MongoDB

Stack

  • Node.js
  • TypeScript
  • Express
  • MongoDB com Mongoose
  • Docker
  • Jest
  • Swagger

Instalação

  1. Certifique-se de ter Node.js 20+ instalado.
  2. Copie o arquivo .env.example para .env.
  3. Instale as dependências:
npm install

Padrão de commits sugerido:

  • feat: nova funcionalidade
  • fix: correção de bug
  • docs: alterações na documentação
  • test: adição ou ajuste de testes
  • chore: tarefas de manutenção

Como rodar localmente

  1. Inicie um MongoDB local ou use Docker.
  2. Ajuste MONGODB_URI no arquivo .env, se necessário.
  3. Inicie a API:
npm run dev

A aplicação ficará disponível em http://localhost:3000.

Como rodar com Docker

docker compose up --build

Isso sobe:

  • API em http://localhost:3000
  • MongoDB em mongodb://localhost:27017

Documentação Swagger

A documentação interativa da API fica em:

  • http://localhost:3000/docs

Todas as rotas estão descritas em português, com exemplos de payload e respostas.

Testes

npm test

Como chamar a API

Health

  • GET /health
curl http://localhost:3000/health

Criar nota

  • POST /notes
curl -X POST http://localhost:3000/notes \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Resumo sobre Express",
    "content": "Middlewares ajudam a organizar a aplicacao.",
    "tags": ["express", "node"]
  }'

Listar notas

  • GET /notes
curl http://localhost:3000/notes

Buscar nota por id

  • GET /notes/:id
curl http://localhost:3000/notes/<note-id>

Atualizar nota

  • PUT /notes/:id
curl -X PUT http://localhost:3000/notes/<note-id> \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Titulo atualizado",
    "content": "Conteudo atualizado",
    "tags": ["atualizado", "backend"]
  }'

Remover nota

  • DELETE /notes/:id
curl -X DELETE http://localhost:3000/notes/<note-id>

Estrutura da nota

Cada nota possui:

  • title
  • content
  • tags
  • createdAt

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors