server for API tests
This commit is contained in:
51
server-api/server.js
Normal file
51
server-api/server.js
Normal file
@@ -0,0 +1,51 @@
|
||||
// 1. Controllo e installazione automatica dipendenze
|
||||
const { execSync } = require('child_process');
|
||||
execSync('npm install', { stdio: 'inherit' });
|
||||
|
||||
|
||||
// 2. Avvio del server JSON
|
||||
const jsonServer = require('json-server');
|
||||
const server = jsonServer.create();
|
||||
const router = jsonServer.router('database/db.json');
|
||||
const middlewares = jsonServer.defaults({ static: 'public' });
|
||||
|
||||
|
||||
// Configurazione del server
|
||||
server.use(middlewares);
|
||||
server.get('/api', (req, res) => {
|
||||
const keys = Object.keys(router.db.getState());
|
||||
const schema = {};
|
||||
keys.forEach(key => {
|
||||
schema[key] = Object.keys(router.db.getState()[key][0]);
|
||||
});
|
||||
res.json(schema);
|
||||
});
|
||||
server.use('/api', router);
|
||||
|
||||
// Avvio del server
|
||||
const host = '0.0.0.0';
|
||||
const port = 3000;
|
||||
server.listen(port, host, () => {
|
||||
console.log(`\nJSON Server is running:`);
|
||||
|
||||
const os = require('os');
|
||||
const interfaces = os.networkInterfaces();
|
||||
Object.keys(interfaces).forEach((ifname) => {
|
||||
interfaces[ifname].forEach((iface) => {
|
||||
// Filtra IPv4 non interni
|
||||
if (iface.family === 'IPv4' && !iface.internal) {
|
||||
// Filtra spesso le interfacce virtuali (opzionale ma utile)
|
||||
// 192.168.56.x è solitamente VirtualBox Host-Only
|
||||
if (!iface.address.startsWith('192.168.56')) {
|
||||
console.log(` http://${iface.address}:${port}/api`);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
console.log('\nResources:');
|
||||
Object.keys(router.db.getState()).forEach(key => {
|
||||
console.log(`/api/${key}`);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user