Udgivelsen af PostgREST 9.0.0, et lag for at omdanne databaser til RESTful API'er

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.

Udgivelsen af PostgREST 9.0.0, et lag for at omdanne databaser til RESTful API'er

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

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster