Lansarea PostgREST 9.0.0, suplimente pentru transformarea bazei de date într-un API RESTful

A avut loc lansarea PostgREST 9.0.0, un server web care funcționează separat, cu implementarea unui add-on ușor la DBMS PostgreSQL, care traduce obiecte dintr-o bază de date existentă într-un API RESTful. În loc să mapeze datele relaționale în obiecte (ORM), PostgREST creează vizualizări direct în baza de date. Partea bazei de date se ocupă, de asemenea, de serializarea răspunsurilor JSON, validarea datelor și autorizarea. Performanța sistemului este suficientă pentru a procesa până la 2000 de solicitări pe secundă pe un server obișnuit. Codul proiectului este scris în Haskell și distribuit sub licența MIT.

De exemplu, folosind doar mecanismul de privilegii de bază de date, puteți acorda acces la date (tabele, tipuri de vizualizare și proceduri stocate) prin HTTP. În acest caz, nu este nevoie să codificați o astfel de traducere și, de obicei, o comandă GRANT este suficientă pentru a face tabelul disponibil prin API-ul REST. Este posibil să configurați accesul prin token (JWT) și să organizați „multitenancy” prin utilizarea securității dinamice la nivel de rând (Row Level Security).

Din punct de vedere arhitectural, PostgREST împinge către o arhitectură orientată către date (Arhitectura orientată către date), în care microserviciile nu salvează ele însele stările, ci folosesc un singur acces la date (Stratul de acces la date) pentru aceasta.

Lansarea PostgREST 9.0.0, suplimente pentru transformarea bazei de date într-un API RESTful

Printre modificările din noua versiune:

  • Tabelele partiționate au fost adăugate în memoria cache a schemei de stocare, ceea ce a făcut posibil ca astfel de tabele să încorporeze operațiunile UPSERT și INSERT în răspunsul Locație, să execute interogări OPȚIUNI și să implementeze suportul OpenAPI.
  • Prin RPC POST este permis să apelați funcții cu un parametru fără nume.
  • Este permis să apelați funcții cu un parametru JSON fără antetul „Prefer: params=single-object”.
  • Este permisă încărcarea datelor de tip bytea în funcții folosind cereri cu „Content-Type: application/octet-stream”.
  • Permis de a încărca text în funcții folosind interogări cu „Content-Type: text/plain”.
  • S-a adăugat suport pentru evadarea caracterelor din paranteze duble, de exemplu, „?col=in.(„Double\”Quote”), ?col=in.(„Back\\slash”)”.
  • A fost oferită capacitatea de a filtra resursele de prim nivel pe baza filtrelor încorporate („/projects?select=*,clients!inner(*)&clients.id=eq.12”.
  • Operatorul „este” permite valoarea „necunoscut”.
  • Compatibilitatea cu PostgreSQL 14 a fost realizată și suportul pentru PostgreSQL 9.5 a fost întrerupt.

Sursa: opennet.ru

Adauga un comentariu