PostgREST 9.0.0 har slÀppts, en fristÄende webserver som implementerar ett lÀttviktigt lager för databashanteringssystemet PostgreSQL, som översÀtter objekt frÄn en befintlig databas till ett RESTful API. IstÀllet för att Äterspegla relationella data i objekt (ORM) skapas vyer direkt i databasen i PostgREST. Svar pÄ JSON, datavalidering och autentisering utförs ocksÄ pÄ databassidan. Systemets prestanda Àr tillrÀcklig för att hantera upp till 2000 förfrÄgningar per sekund i typiska servern. Projektkoden Àr skriven i Haskell och distribueras under MIT-licensen.
Till exempel, genom att anvÀnda enbart behörighetsmekanismen i databasen kan man ge Ätkomst till data (tabeller, vyer och lagrade procedurer) via HTTP-protokollet. Det finns inget behov av att koda sÄdan översÀttning och det rÀcker vanligtvis med ett GRANT-kommando för att tabellen ska bli tillgÀnglig via REST API. Det finns möjlighet att konfigurera Ätkomst med en token (JWT) och organisera "multitenancy" genom att anvÀnda dynamisk sÀkerhet pÄ radnivÄ (Row Level Security).
Arkitektoniskt uppmuntrar PostgREST en datacenterad arkitektur (Data-Oriented Architecture) dÀr mikrotjÀnster inte upprÀtthÄller sitt eget tillstÄnd, utan anvÀnder en gemensam datatillgÄng (Data Access Layer).

Bland förÀndringarna i den nya versionen:
- I lagringsschemat har sektionerade (partitionerade) tabeller lagts till, vilket gör det möjligt för sÄdana tabeller att integrera UPSERT och INSERT-operationer i svaren pÄ Location, utföra OPTIONS-förfrÄgningar och implementera stöd för OpenAPI.
- Via RPC POST tillÄts anrop av funktioner med en icke namngiven parameter.
- Det Àr tillÄtet att anropa funktioner med en JSON-parameter utan rubriken "Prefer: params=single-object".
- Det Àr tillÄtet att ladda upp data av typ bytea till funktioner, med förfrÄgningar som har "Content-Type: application/octet-stream".
- Det Àr tillÄtet att ladda upp text till funktioner, med förfrÄgningar som har "Content-Type: text/plain".
- Stöd för att rymma tecken inne i dubbla parenteser har lagts till, till exempel "?col=in.("Double\"Quote"), ?col=in.("Back\\slash")".
- Möjlighet att filtrera resurser pÄ första nivÄn baserat pÄ inbyggda filter har tillhandahÄllits ("/projects?select=*,clients!inner(*)&clients.id=eq.12").
- I operatören "is" tillÄts anvÀndningen av vÀrdet "unknown".
- Kompatibilitet med PostgreSQL 14 har sÀkerstÀllts och stöd för PostgreSQL 9.5 har upphört.
KĂ€lla: opennet.ru
