Utgivelse av PostgREST 9.0.0, tillegg for å gjøre databasen om til en RESTful API

Utgivelsen av PostgREST 9.0.0 fant sted, en separat opererende webserver med implementering av et lett tillegg til PostgreSQL DBMS, som oversetter objekter fra en eksisterende database til en RESTful API. I stedet for å kartlegge relasjonsdata til objekter (ORM), oppretter PostgREST visninger direkte i databasen. Databasesiden håndterer også serialisering av JSON-svar, datavalidering og autorisasjon. Systemytelsen er tilstrekkelig til å behandle opptil 2000 forespørsler per sekund på en typisk server. Prosjektkoden er skrevet i Haskell og distribuert under MIT-lisensen.

Hvis du for eksempel bare bruker databaserettighetsmekanismen, kan du gi tilgang til data (tabeller, visningstyper og lagrede prosedyrer) over HTTP. I dette tilfellet er det ikke nødvendig å kode en slik oversettelse, og vanligvis er én GRANT-kommando nok til å gjøre tabellen tilgjengelig via REST API. Det er mulig å konfigurere tilgang med token (JWT) og organisere "multitenancy" ved bruk av dynamisk radnivåsikkerhet (Row Level Security).

Arkitektonisk presser PostgREST mot en dataorientert arkitektur (Data-Oriented Architecture), hvor mikrotjenester ikke lagrer tilstander selv, men bruker en enkelt tilgang til data (Data Access Layer) til dette.

Utgivelse av PostgREST 9.0.0, tillegg for å gjøre databasen om til en RESTful API

Blant endringene i den nye versjonen:

  • Partisjonerte tabeller ble lagt til lagringsskjemabufferen, noe som gjorde det mulig for slike tabeller å bygge inn UPSERT- og INSERT-operasjoner i Location-responsen, utføre OPTIONS-spørringer og implementere OpenAPI-støtte.
  • Via RPC POST er det tillatt å kalle opp funksjoner med én navngitt parameter.
  • Det er tillatt å kalle opp funksjoner med én JSON-parameter uten "Prefer: params=single-object"-overskriften.
  • Det er tillatt å laste data av typen bytea inn i funksjoner ved å bruke spørringer med "Content-Type: application/octet-stream".
  • Tillatt å laste inn tekst i funksjoner ved å bruke spørringer med "Innholdstype: tekst/vanlig".
  • Lagt til støtte for escape-tegn innenfor doble parenteser, for eksempel "?col=in.("Double\"Quote"), ?col=in.("Back\\slash")".
  • Muligheten til å filtrere førstenivåressurser basert på innebygde filtre ("/projects?select=*,clients!inner(*)&clients.id=eq.12" er gitt.
  • Operatoren "er" tillater verdien "ukjent".
  • Kompatibilitet med PostgreSQL 14 er oppnådd og støtte for PostgreSQL 9.5 er avviklet.

Kilde: opennet.ru

Legg til en kommentar