Welcome to the Node.js Data API project! This API fetches dummy JSON data, stores it locally, and provides a flexible interface for accessing, filtering, and sorting the data.
- 📥 Fetches external data and stores it locally
- 🛠️ Creates a RESTful API with Express
- 🔍 Implements advanced data filtering and sorting
- 🛡️ Robust error handling and input validation
- 🚦 Efficient query parameter processing
📁 src
├── 📄 app.js # Main entry point
├── 📄 config.js # Configuration settings
├── 📁 routes
│ └── 📄 dataRoutes.js # API route definitions
├── 📁 controllers
│ └── 📄 dataController.js # Route logic handlers
├── 📁 services
│ └── 📄 dataService.js # Data management
├── 📁 utils
│ └── 📄 fetchData.js # Utility functions for data fetching process
├── 📁 data
│ └── 📄 dummyData.json # Stored fetched data
└── 📄 .env # Environment variables (create this file)
- Node.js (v12.0.0+)
- npm (v6.0.0+)
-
Clone the repository: git clone https://github.com/CodingWithError/Node.js_Project_with_Dummy_JSON_Data cd dummy-json-api
-
Create a
.envfile in the root directory: DATA_URL=https://microsoftedge.github.io/Demos/json-dummy-data/256KB.json PORT=3000 -
Install dependencies: npm install
-
Start the server: npm start
Your server is now running at http://localhost:3000! 🎉
Retrieve data with optional filtering and sorting.
-
filter(optional): Filter data based on specific criteria. Format:key1:value1,key2:value2Example:filter=language:Hindi -
sort(optional): Sort data based on a specific field. Format:field:orderExample:sort=version:desc
- Get all data:
/api/data - Filter data:
/api/data?filter=language:Sindhi - Sort data:
/api/data?sort=version:desc - Filter and sort:
/api/data?filter=language:Sindhi&sort=id:desc
Our API provides detailed error messages for various scenarios:
- Unrecognized query parameters
- Invalid filter format
- No matching items
- Invalid sort format
- Data stored locally in JSON format for quick access
- Efficient in-memory filtering and sorting
- Get all data:
/api/data
- Filter data:
/api/data?filter=language:Sindhi
- Sort data:
/api/data?sort=version:desc
- Filter and sort:
/api/data?filter=language:Sindhi&sort=id:desc



