PostgREST 9.0.0 er blevet udgivet, en selvstændig webserver med en letvægtslag ovenpå PostgreSQL-databasen, som konverterer objekter fra den eksisterende database til et RESTful API. I stedet for at afspejle relationelle data i objekter (ORM) oprettes visninger direkte i databasen i PostgREST. På databasesiden udføres også serialisering af JSON-svar, datavalidering og autorisering. Systemets ydeevne er tilstrækkelig til at håndtere op til 2000 forespørgsler pr. sekund typisk. serverenProjektets kode er skrevet i Haskell og distribueres under MIT-licensen.
For eksempel, kun ved hjælp af databaseprivilegier kan man give adgang til data (tabeller, visninger og lagrede procedurer) via HTTP-protokollen. Der er ikke behov for at kode en sådan konvertering, og det er normalt tilstrækkeligt med én GRANT-kommando for at gøre tabellen tilgængelig via REST API. Der er mulighed for at opsætte adgang via token (JWT) og organisere 'multitenancy' ved at bruge dynamisk sikkerhed på række-niveau (Row Level Security).
Arkitektonisk tilskynder PostgREST til en dataorienteret arkitektur (Data-Oriented Architecture), hvor mikrotjenester ikke gemmer tilstande selv, men bruger en fælles adgang til data (Data Access Layer) til dette.

Blandt ændringerne i den nye version:
- Der er tilføjet partitionerede tabeller til lagringsskemaet, hvilket muliggør at indlejre UPSERT- og INSERT-operationer i Location-svaret, udføre OPTIONS-forespørgsler og implementere support for OpenAPI.
- Via RPC POST er det tilladt at kalde funktioner med én unavngiven parameter.
- Det er tilladt at kalde funktioner med én JSON-parameter uden overskriften 'Prefer: params=single-object'.
- Det er tilladt at uploade data med bytea-type til funktioner ved at bruge forespørgsler med 'Content-Type: application/octet-stream'.
- Det er tilladt at uploade tekst til funktioner ved at bruge forespørgsler med 'Content-Type: text/plain'.
- Der er tilføjet support til at undslippe tegn inden for dobbelt parenteser, for eksempel '?col=in.('Double\'Quote'), ?col=in.('Back\\slash')'.
- Mulighed for at filtrere ressourcer på første niveau baseret på indbyggede filtre ('/projects?select=*,clients!inner(*)&clients.id=eq.12').
- I operatoren 'is' er det tilladt at bruge værdien 'unknown'.
- Kompatibilitet med PostgreSQL 14 er sikret, og supporten for PostgreSQL 9.5 er stoppet.
Kilde: opennet.ru
