• OBSBOT DE
  • Caffè Vergnano
  • Pneumatici
  • OBSBOT DE
  • Europcar IT
  • Europcar IT
  • OBSBOT DE
  • OBSBOT DE
  • Pneumatici
  • Pneumatici
  • OBSBOT DE

UnDB prototipo di Database NoSql RESTful

UNDB: Un Prototipo di Database NoSQL Leggero e Flessibile scritto in C# Net 8.0

UNDB è un prototipo di database NoSQL progettato per essere semplice, leggero e facile da usare. Utilizza un formato di file JSON per memorizzare i dati, offrendo una struttura flessibile e adattabile a diverse esigenze.

Caratteristiche Principali

  • NoSQL: Non richiede uno schema predefinito, consentendo di aggiungere e modificare i dati in modo dinamico.
  • Leggerezza: Utilizza file JSON come storage, riducendo l'overhead di gestione rispetto ai database tradizionali.
  • Interfaccia HTTP: Espone un'API RESTful tramite un server HTTP, facilitando l'interazione da diversi linguaggi di programmazione.
  • Autenticazione di Base: Utilizza l'autenticazione HTTP di base per proteggere l'accesso ai dati. Per i test, le credenziali predefinite sono root:123.

Tipi di Handle e Formattazione

UNDB supporta diverse operazioni (handle) per interagire con i dati:

  • CREATE TABLE: Crea una nuova tabella specificando il nome e le colonne con i relativi tipi (autoincrement, unique, boolean, int, string).
    • Formato:GET /createtable?table=&columns=,
  • INSERT: Inserisce un nuovo record in una tabella.
    • Formato:POST /insert?table= con il corpo della richiesta contenente un oggetto JSON con i dati da inserire.
  • UPDATE: Aggiorna un record esistente in una tabella.
    • Formato:PUT /update?table=&id= con il corpo della richiesta contenente un oggetto JSON con i dati da aggiornare.
  • DELETE: Elimina un record da una tabella.
    • Formato:DELETE /delete?table=&id=
  • SELECT: Legge i dati da una tabella (non ancora implementato in questo prototipo).

C#

C#
using System.Net.Http;
using System.Net.Http.Headers;
using Newtonsoft.Json.Linq;
// ...
var client = new HttpClient();
var byteArray = Encoding.ASCII.GetBytes("root:123"); // Credenziali di testclient.
DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
var response = await client.GetAsync("http://localhost:8080/createtable?table=utenti&columns=id:autoincrement,nome,email:unique");
// ...

PHP

PHP
$url = 'http://localhost:8080/insert?table=utenti';
$data = json_encode(['nome' => 'Mario Rossi', 'email' => 'mario.rossi@example.com']);
$ch = curl_init($url);curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD,"root:123"); // Credenziali di test
$response = curl_exec($ch);
curl_close($ch);

C++ (usando libcurl)

C++
#include
#include
#include
// ...
CURL *curl;
CURLcode res;
std::string readBuffer;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://localhost:8080/update?table=utenti&id=1");
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "PUT");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{"nome": "Luigi Bianchi"}");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
res = curl_easy_perform(curl);
// ...
}


Python

Python
import requestsurl = 'http://localhost:8080/delete?table=utenti&id=1'
response = requests.delete(url, auth=('root', '123')) // Credenziali di test
// ...

Considerazioni Finali

UNDB è un progetto in corso di sviluppo e rappresenta un punto di partenza per la creazione di un database NoSQL personalizzato. Attualmente, mancano funzionalità importanti come il supporto per query complesse, la gestione della concorrenza e un sistema di autenticazione più robusto. Tuttavia, offre una base solida per sperimentare e costruire soluzioni su misura per le tue esigenze, tenendo presente che l'autenticazione di base è solo a scopo di test e dovrebbe essere sostituita con un meccanismo più sicuro in un ambiente di produzione.

Il database deve essere avviato con privilegi di amministazione (perchè automaticamente si instanzia su tutti gli ip del pc).

l'utente creato in automatico sul db al primo avvio è root e come password ha 123.

Download UnDb_NoSql

Il software UNDB è fornito "così com'è", senza alcuna garanzia, esplicita o implicita, inclusa, ma non limitata a, garanzie di commerciabilità, idoneità per uno scopo particolare e non violazione. In nessun caso l'autore o i contributori saranno responsabili per eventuali danni diretti, indiretti, incidentali, speciali, consequenziali o punitivi derivanti dall'uso di questo software, anche se avvisati della possibilità di tali danni.

Questo DB è stato creato da Fabiodirauso a puro scopo dimostrativo.

L'utente accetta di utilizzare il software UNDB a proprio rischio e pericolo. L'autore non si assume alcuna responsabilità per eventuali perdite di dati, danni ai sistemi o altre conseguenze derivanti dall'utilizzo di questo software.

Il software UNDB è un prototipo sperimentale e non è destinato all'uso in ambienti di produzione. L'autore non garantisce l'affidabilità, la sicurezza o la completezza di questo software.

L'utente è responsabile di valutare l'idoneità del software UNDB per le proprie esigenze e di adottare le misure appropriate per proteggere i propri dati e sistemi.


Linkedin

Potrebbero interessarti

Motori Elettrici Sincroni a Riluttanza: Una Guida Completa

I motori elettrici sincroni a riluttanza (SRM ...

Leggi ->

Cosa è la fibra ottica

Una fibra ottica è un filamento di materiale vetroso o polimerico, realizzato in ...

Leggi ->

Linee di Sicurezza (Safety PLC): Una Guida introduttiva

I controllori logici programmabili (PLC) sono ...

Leggi ->

News su GTA VI

Quando uscirà GTA VI, Come sarà GTA VI, Su che piattaforme sarà GTA VI e tanto al ...

Leggi ->

Come salvare un documento da word in pdf

Cosa è un pdf ? Un PDF, che sta per "Portable Do ...

Leggi ->

Come configurare due indirizzi IP sulla stessa interfaccia di rete con Netplan su Ubuntu

Netplan è uno strumento moderno e flessibile per la configurazione di rete su Ubu ...

Leggi ->

Come installare Node-Red su Ubuntu 22.04

Cosa è Node-Red ? Node-RED è uno strumento nato con ...

Leggi ->

Gmail, un indirizzo infiniti indirizzi

Gmail: come usare la punteggiatura e i simboli per creare mail diverse& ...

Leggi ->

Periferiche decentrate per PLC: una rivoluzione in campo industriale

L'automazione industriale è un settore i ...

Leggi ->
  • Caffè Vergnano
  • OBSBOT DE
  • OBSBOT DE
  • OBSBOT DE
  • Pneumatici
  • OBSBOT DE
  • Pneumatici
  • OBSBOT DE
  • Europcar IT
  • Europcar IT
  • Pneumatici