Frigivelse af PostgREST 9.0.0, tilføjelser til at omdanne databasen til en RESTful API

PostgREST 9.0.0 blev udgivet, en separat fungerende webserver med implementering af en let tilføjelse til PostgreSQL DBMS, der oversætter objekter fra en eksisterende database til en RESTful API. I stedet for at kortlægge relationelle data til objekter (ORM'er), opretter PostgREST visninger direkte i databasen. Databasesiden håndterer også serialisering af JSON-svar, datavalidering og godkendelse. Systemets ydeevne er tilstrækkelig til at behandle op til 2000 anmodninger i sekundet på en typisk server. Projektkoden er skrevet i Haskell og distribueret under MIT-licensen.

For eksempel ved kun at bruge databaseprivilegiemekanismen kan du give adgang til data (tabeller, visningstyper og lagrede procedurer) over HTTP. I dette tilfælde er der ingen grund til at kode en sådan oversættelse, og normalt er én GRANT-kommando nok til at gøre tabellen tilgængelig via REST API. Det er muligt at konfigurere adgang via token (JWT) og organisere "multitenancy" ved brug af dynamisk rækkeniveausikkerhed (Row Level Security).

Arkitektonisk skubber PostgREST i retning af en dataorienteret arkitektur (Data-Oriented Architecture), hvor mikrotjenester ikke selv gemmer tilstande, men bruger en enkelt adgang til data (Data Access Layer) til dette.

Frigivelse af PostgREST 9.0.0, tilføjelser til at omdanne databasen til en RESTful API

Blandt ændringerne i den nye version:

  • Partitionerede tabeller blev tilføjet til lagerskemacachen, hvilket gjorde det muligt for sådanne tabeller at indlejre UPSERT- og INSERT-operationer i Location-svaret, udføre OPTIONS-forespørgsler og implementere OpenAPI-understøttelse.
  • Via RPC POST er det tilladt at kalde funktioner med én unavngiven parameter.
  • Det er tilladt at kalde funktioner med én JSON-parameter uden "Prefer: params=single-object"-headeren.
  • Det er tilladt at indlæse data af typen bytea i funktioner ved hjælp af forespørgsler med "Content-Type: application/octet-stream".
  • Tilladt at indlæse tekst i funktioner ved hjælp af forespørgsler med "Content-Type: text/plain".
  • Tilføjet understøttelse af escape-tegn inden for dobbelte parenteser, for eksempel "?col=in.("Double\"Citat"), ?col=in.("Tilbage\\skråstreg")".
  • Muligheden for at filtrere ressourcer på første niveau baseret på indbyggede filtre ("/projects?select=*,clients!inner(*)&clients.id=eq.12" er blevet tilvejebragt.
  • Operatoren "er" tillader værdien "ukendt".
  • Kompatibilitet med PostgreSQL 14 er opnået, og support til PostgreSQL 9.5 er afbrudt.

Kilde: opennet.ru

Tilføj en kommentar