pgcrudapi
v1.0.3
Published
A CRUD npm package supporting PostgreSQL.
Downloads
11
Maintainers
Readme
PGcrudapi 🚀
Welcome to pgcrudapi! This package automatically generates CRUD APIs for PostgreSQL databases, making development faster and easier than ever before.
Features 🎉
- 🛠 Auto-generate CRUD APIs for PostgreSQL tables
- 🧰 Customizable routes with full flexibility
- 🔄 Supports dynamic table creation from schema definitions
- 🚦 Built-in pagination, filtering, and sorting
- 🔗 Seamless integration with PostgreSQL using
pg
Installation 🛠️
To get started, install the package using npm:
npm install pgcrudapi
How It Works ⚙️
Define your schema:
const schemaDefinition = { name: { type: 'VARCHAR(100)', required: true }, price: { type: 'NUMERIC', required: true }, category: { type: 'VARCHAR(50)' }, };
Generate CRUD APIs for PostgreSQL:
const app = generateCrudpg({ dbConfig: { user: 'your-username', host: 'localhost', database: 'your-database', password: 'your-password', port: 5432, }, schemaDefinition, tableName: 'products', }); app.listen(3000, () => console.log('Server running on port 3000'));
API Endpoints 🎯
Here's what you get out-of-the-box:
- Create ➡️
POST /api/products
– Add a new record - Read All 📜
GET /api/products
– Fetch all records - Read One 🔍
GET /api/products/:id
– Fetch a single record by ID - Update 🔄
PUT /api/products/:id
– Update a record by ID - Delete ❌
DELETE /api/products/:id
– Delete a record by ID - Delete All 🗑
DELETE /api/products
– Clear all records from the table
Add Custom Routes 🛠️
Extend the functionality by adding your own custom routes. You can even use other libraries!
const customRoutes = [
{
method: 'get',
path: '/api/products/discounted',
handler: async (req, res) => {
try {
const result = await pool.query(
`SELECT * FROM products WHERE price < 500`
);
res.status(200).json(result.rows);
} catch (error) {
res.status(500).send(error);
}
},
},
];
Custom Table Creation 🧱
With pgcrudapi, you don’t need to manually define tables. Simply provide a schema definition and it will create the table for you!
const schemaDefinition = {
name: { type: 'VARCHAR(100)', required: true },
price: { type: 'NUMERIC', required: true },
category: { type: 'VARCHAR(50)' },
};
Advanced Query Features 📊
Your APIs are equipped with:
- Filtering 🧑🔬:
GET /api/products?filter={"category":"electronics"}
- Sorting ↕:
GET /api/products?sort=price,desc
- Pagination 🔄:
GET /api/products?limit=10&startAfter=5
Dependencies 📦
This package uses:
- express: A fast, minimalist web framework for Node.js
- pg: PostgreSQL client for Node.js
License 📄
This project is licensed under the MIT License.
Author ✍️
Sumit
📧 [email protected]