Release av PostgREST 9.0.0, tillägg för att förvandla databasen till ett RESTful API

PostgREST 9.0.0 släpptes, en separat fungerande webbserver med implementering av ett lätt tillägg till PostgreSQL DBMS, som översätter objekt från en befintlig databas till ett RESTful API. Istället för att mappa relationsdata till objekt (ORM), skapar PostgREST vyer direkt i databasen. Databassidan hanterar också serialisering av JSON-svar, datavalidering och auktorisering. Systemprestandan är tillräcklig för att behandla upp till 2000 förfrågningar per sekund på en typisk server. Projektkoden är skriven i Haskell och distribueras under MIT-licensen.

Om du till exempel endast använder databasbehörighetsmekanismen kan du ge åtkomst till data (tabeller, vytyper och lagrade procedurer) över HTTP. I det här fallet finns det inget behov av att koda en sådan översättning och vanligtvis räcker ett GRANT-kommando för att göra tabellen tillgänglig via REST API. Det är möjligt att konfigurera åtkomst via token (JWT) och organisera "multitenancy" genom att använda dynamisk radnivåsäkerhet (Row Level Security).

Arkitektoniskt driver PostgREST mot en dataorienterad arkitektur (Data-Oriented Architecture), där mikrotjänster inte själva sparar tillstånd, utan använder en enda åtkomst till data (Data Access Layer) för detta.

Release av PostgREST 9.0.0, tillägg för att förvandla databasen till ett RESTful API

Bland ändringarna i den nya versionen:

  • Partitionerade tabeller lades till i lagringsschemacachen, vilket gjorde det möjligt för sådana tabeller att bädda in UPSERT- och INSERT-operationer i Location-svaret, köra OPTIONS-frågor och implementera OpenAPI-stöd.
  • Via RPC POST är det tillåtet att anropa 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 data av typen bytea i funktioner med förfrågningar med "Content-Type: application/octet-stream".
  • Tillåts att ladda text i funktioner med hjälp av frågor med "Content-Type: text/plain".
  • Lade till stöd för escape-tecken inom dubbla parenteser, till exempel "?col=in.("Dubbel\"Citat"), ?col=in.("Back\\slash")".
  • Möjligheten att filtrera resurser på första nivå baserat på inbyggda filter ("/projects?select=*,clients!inner(*)&clients.id=eq.12" har tillhandahållits.
  • Operatorn "är" tillåter värdet "okänt".
  • Kompatibilitet med PostgreSQL 14 har uppnåtts och stöd för PostgreSQL 9.5 har upphört.

Källa: opennet.ru

Lägg en kommentar