PostgREST 9.0.0 izlaidums, pievienojumprogrammas datu bāzes pārvēršanai par RESTful API

Tika izlaista PostgREST 9.0.0 — atsevišķi strādājošs tīmekļa serveris ar vieglu PostgreSQL DBVS papildinājumu, kas pārvērš objektus no esošas datu bāzes RESTful API. Tā vietā, lai kartētu relāciju datus objektos (ORM), PostgREST izveido skatus tieši datu bāzē. Datu bāzes puse apstrādā arī JSON atbilžu serializāciju, datu validāciju un autorizāciju. Sistēmas veiktspēja ir pietiekama, lai tipiskā serverī apstrādātu līdz 2000 pieprasījumiem sekundē. Projekta kods ir rakstīts Haskell un izplatīts saskaņā ar MIT licenci.

Piemēram, izmantojot tikai datu bāzes privilēģiju mehānismu, varat piešķirt piekļuvi datiem (tabulām, skatu veidiem un saglabātajām procedūrām), izmantojot HTTP. Šajā gadījumā nav nepieciešams kodēt šādu tulkojumu un parasti pietiek ar vienu GRANT komandu, lai tabula būtu pieejama caur REST API. Ir iespējams konfigurēt piekļuvi, izmantojot marķieri (JWT) un organizēt “daudzuzņēmumu”, izmantojot dinamisku rindas līmeņa drošību (Row Level Security).

Arhitektūras ziņā PostgREST virzās uz datiem orientētu arhitektūru (Data-Oriented Architecture), kur mikropakalpojumi nesaglabā paši stāvokļus, bet izmanto vienu piekļuvi datiem (Data Access Layer).

PostgREST 9.0.0 izlaidums, pievienojumprogrammas datu bāzes pārvēršanai par RESTful API

Starp izmaiņām jaunajā versijā:

  • Sadalītās tabulas tika pievienotas krātuves shēmas kešatmiņai, kas ļāva šādām tabulām iegult UPSERT un INSERT darbības atbildē Location, izpildīt OPTIONS vaicājumus un ieviest OpenAPI atbalstu.
  • Izmantojot RPC POST, ir atļauts izsaukt funkcijas ar vienu nenosauktu parametru.
  • Ir atļauts izsaukt funkcijas ar vienu JSON parametru bez galvenes “Prefer: params=single-object”.
  • Ir atļauts ielādēt baitu tipa datus funkcijās, izmantojot vaicājumus ar “Content-Type: application/octet-stream”.
  • Atļauts ielādēt tekstu funkcijās, izmantojot vaicājumus ar "Content-Type: text/plain".
  • Pievienots atbalsts atsoļa rakstzīmēm dubultiekavās, piemēram, "?col=in.("Dubults\"Citāts"), ?col=in.("Atpakaļ\\slīpsvītra")".
  • Ir nodrošināta iespēja filtrēt pirmā līmeņa resursus, pamatojoties uz iebūvētajiem filtriem (“/projects?select=*,clients!inner(*)&clients.id=eq.12”.
  • Operators "is" pieļauj vērtību "unknown".
  • Ir panākta saderība ar PostgreSQL 14, un PostgreSQL 9.5 atbalsts ir pārtraukts.

Avots: opennet.ru

Pievieno komentāru