# Ghayma REST API Application A simple, lightweight Node.js Express REST API application with container support. ## 🚀 Features - **Express.js** lightweight web framework - **CORS & JSON Middleware** pre-configured - **Health Check Endpoint** (`/health`) for Docker/Kubernetes probes - **Resource CRUD API** (`/api/v1/items`) - **Docker Support** with health checks and optimized `.dockerignore` --- ## 🛠️ Endpoints Overview | Method | Endpoint | Description | | :--- | :--- | :--- | | `GET` | `/` | API Metadata & Welcome Info | | `GET` | `/health` | Application Health & Uptime Status | | `GET` | `/metrics` | API Request Metrics (Latency, Counts, Status) | | `GET` | `/dashboard` | API Internal Monitoring Dashboard UI | | `GET` | `/monitoring` | External Platform Monitoring Dashboard (mithal.space) | | `GET` | `/api/monitoring/metrics` | External Monitoring Data (from Python collector) | | `GET` | `/api/v1/items` | List all items | | `GET` | `/api/v1/items/:id` | Get item by ID | | `POST` | `/api/v1/items` | Create new item | | `DELETE` | `/api/v1/items/:id` | Delete item by ID | --- ## 💻 Running Locally ### Prerequisites - Node.js (v18+) ### Steps 1. Install dependencies: ```bash npm install ``` 2. Start the API server: ```bash npm start ``` Or for development auto-reload (Node 18+): ```bash npm run dev ``` 3. Test the server: Navigate to `http://localhost:3000` or run: ```bash curl http://localhost:3000/health ``` --- ## 🐳 Running with Docker ### Build the Docker Image ```bash docker build -t ghayma-api . ``` ### Run the Container ```bash docker run -d -p 3000:3000 --name ghayma-api-app ghayma-api ``` ### Test Containerized API ```bash curl http://localhost:3000/api/v1/items ``` ### Stop Container ```bash docker stop ghayma-api-app docker rm ghayma-api-app ```