Rilascio di PostgREST 9.0.0, un'estensione per trasformare il database in API RESTful

È stato rilasciato PostgREST 9.0.0, un server web autonomo con un'implementazione leggera di un'estensione per il DBMS PostgreSQL, che traduce oggetti da un database esistente in un'API RESTful. Invece di riflettere i dati relazionali in oggetti (ORM), in PostgREST le viste sono create direttamente nel database. Anche la serializzazione delle risposte JSON, la convalida dei dati e l'autorizzazione vengono eseguite a livello di database. Le prestazioni del sistema sono sufficienti per elaborare fino a 2000 richieste al secondo in condizioni tipiche. server. Il codice del progetto è scritto in Haskell e distribuito sotto la licenza MIT.

Ad esempio, utilizzando solo il meccanismo dei privilegi nel database, è possibile fornire accesso ai dati (tabelle, viste e procedure memorizzate) tramite il protocollo HTTP. Non è necessario codificare tale traduzione e di solito è sufficiente un comando GRANT affinché la tabella diventi disponibile tramite l'API REST. È possibile configurare l'accesso tramite token (JWT) e organizzare il "multitenancy" utilizzando la sicurezza dinamica a livello di righe (Row Level Security).

Architettonicamente, PostgREST promuove un'architettura orientata ai dati (Data-Oriented Architecture), in cui i microservizi non mantengono lo stato, ma utilizzano un accesso unificato ai dati (Data Access Layer).

Rilascio di PostgREST 9.0.0, un'estensione per trasformare il database in API RESTful

Tra le novità nella nuova versione:

  • Sono state aggiunte tabelle partizionate allo schema di memorizzazione nella cache, consentendo di integrare operazioni UPSERT e INSERT nella risposta Location, eseguire richieste OPTIONS e implementare il supporto per OpenAPI.
  • Attraverso RPC POST è consentito chiamare funzioni con un unico parametro non nominato.
  • È consentito chiamare funzioni con un singolo parametro JSON senza l'intestazione "Prefer: params=single-object".
  • È consentito caricare nei parametri delle funzioni dati di tipo bytea, utilizzando richieste con "Content-Type: application/octet-stream".
  • È consentito caricare nei parametri delle funzioni testo, utilizzando richieste con "Content-Type: text/plain".
  • È stata aggiunta la supporto per il controllo dei caratteri all'interno di virgolette doppie, ad esempio, "?col=in.("Double\"Quote"), ?col=in.("Back\\slash").
  • È stata fornita la possibilità di filtrare le risorse di primo livello sulla base di filtri incorporati ("/projects?select=*,clients!inner(*)&clients.id=eq.12").
  • Nell'operatore "is" è consentito utilizzare il valore "unknown".
  • È stata garantita la compatibilità con PostgreSQL 14 e è stata interrotta la supporto per PostgreSQL 9.5.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster