Skip to content

A raw Node.js REST API for managing support tickets, built entirely without external frameworks. Features a custom routing system, middleware-based architecture, and full CRUD capabilities using only native modules.

Notifications You must be signed in to change notification settings

alissonpef/API-Support-Tickets

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API Support Tickets

Uma API RESTful minimalista para gerenciamento de tickets de suporte, construída com Node.js usando apenas o módulo nativo http (ES Modules). Este repositório é ideal como projeto didático, protótipo ou microserviço local — os dados são persistidos em src/database/db.json.

✨ Visão geral

O objetivo principal é fornecer endpoints simples para criar e listar tickets de suporte. A implementação evita frameworks externos de propósito, para deixar o funcionamento do servidor, roteamento e persistência mais explícitos.

Principais responsabilidades:

  • Receber e parsear requisições JSON
  • Criar tickets (POST /tickets)
  • Listar tickets com filtro por status (GET /tickets?status=open)

🛠️ Stack

  • Node.js (ES Modules)
  • JavaScript (sem dependências externas)
  • Módulos nativos: http, fs, crypto

🚀 Rodando localmente

Pré-requisitos:

  • Node.js v18+ (recomendado)

Passos rápidos:

git clone https://github.com/alissonpef/API-Support-Tickets.git
cd API-Support-Ticket
npm run dev

O servidor ficará disponível em http://localhost:3456.

⚙️ Scripts

Comando Descrição
npm run dev Inicia o servidor com node --watch src/server.js (hot-reload simples)

📁 Estrutura do projeto

src/
├── controllers/
│   └── tickets/        # controladores (create, index, update, remove, updateStatus)
├── database/
│   ├── database.js     # classe de persistência (lê/grava em db.json)
│   └── db.json         # dados persistidos
├── middlewares/
│   ├── jsonHandler.js  # parse do corpo JSON
│   └── routeHandler.js # roteador simples
├── routes/
│   └── tickets.js      # definição das rotas
└── utils/
	 ├── parseRoutePath.js
	 └── extractQueryParams.js

🔌 Endpoints

POST /tickets

Cria um novo ticket.

Request body (JSON):

{
  "equipment": "Computador",
  "description": "Não liga",
  "user_name": "Fulano"
}

Resposta: 201 com o objeto do ticket criado.

GET /tickets

Retorna lista de tickets. Query opcional status para filtrar (ex.: ?status=open).

⚡ Exemplos (curl)

# Criar ticket
curl -X POST http://localhost:3456/tickets \
  -H 'Content-Type: application/json' \
  -d '{"equipment":"Computador","description":"Não liga","user_name":"Alisson"}'

# Listar tickets abertos
curl 'http://localhost:3456/tickets?status=open'

Como contribuir

  • Fork -> branch feature -> Pull Request com descrição das mudanças.

About

A raw Node.js REST API for managing support tickets, built entirely without external frameworks. Features a custom routing system, middleware-based architecture, and full CRUD capabilities using only native modules.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published