Vydání PostgREST 9.0.0, doplňků pro přeměnu databáze na RESTful API

Byl vydán PostgREST 9.0.0, samostatně fungující webový server s implementací odlehčeného doplňku do PostgreSQL DBMS, který překládá objekty z existující databáze do RESTful API. Místo mapování relačních dat do objektů (ORM) vytváří PostgREST pohledy přímo v databázi. Strana databáze také zpracovává serializaci odpovědí JSON, ověřování dat a autorizaci. Výkon systému je dostatečný pro zpracování až 2000 požadavků za sekundu na typickém serveru. Kód projektu je napsán v Haskell a distribuován pod licencí MIT.

Například pomocí pouze mechanismu oprávnění databáze můžete udělit přístup k datům (tabulkám, typům pohledů a uloženým procedurám) přes HTTP. V tomto případě není potřeba takový překlad kódovat a většinou stačí jeden příkaz GRANT ke zpřístupnění tabulky přes REST API. Je možné konfigurovat přístup podle tokenu (JWT) a organizovat „multitenancy“ pomocí dynamického zabezpečení na úrovni řádků (Row Level Security).

Architektonicky se PostgREST tlačí k architektuře orientované na data (Data-Oriented Architecture), kdy si mikroslužby neukládají stavy samy, ale využívají k tomu jediný přístup k datům (Data Access Layer).

Vydání PostgREST 9.0.0, doplňků pro přeměnu databáze na RESTful API

Mezi změny v nové verzi:

  • Do mezipaměti schémat úložiště byly přidány rozdělené tabulky, což těmto tabulkám umožnilo vložit operace UPSERT a INSERT do odpovědi umístění, spouštět dotazy OPTIONS a implementovat podporu OpenAPI.
  • Přes RPC POST je povoleno volat funkce s jedním nepojmenovaným parametrem.
  • Je povoleno volat funkce s jedním parametrem JSON bez hlavičky „Prefer: params=single-object“.
  • Je povoleno načítat data typu bytea do funkcí pomocí požadavků s „Content-Type: application/octet-stream“.
  • Povoleno načíst text do funkcí pomocí dotazů s "Content-Type: text/plain".
  • Přidána podpora pro escapování znaků ve dvojitých závorkách, například "?col=in.("Double\"Quote"), ?col=in.("Back\\slash")".
  • Byla poskytnuta možnost filtrovat zdroje první úrovně na základě vestavěných filtrů („/projects?select=*,clients!inner(*)&clients.id=eq.12“).
  • Operátor "is" umožňuje hodnotu "unknown".
  • Bylo dosaženo kompatibility s PostgreSQL 14 a podpora PostgreSQL 9.5 byla ukončena.

Zdroj: opennet.ru

Přidat komentář