Uvolnění PostgREST 9.0.0, nadstavby pro přetváření databáze na RESTful API

Uskutečnilo se uvolnění PostgREST 9.0.0, samostatně fungujícího webového serveru s implementací lehké nadstavby k systému správy databází PostgreSQL, která převádí objekty z existující databáze na RESTful API. Namísto odrážení relačních dat v objektech (ORM) v PostgREST se pohledy vytvářejí přímo v databázi. Na straně databáze se také provádí serializace odpovědí JSON, kontrola dat a autorizace. Výkon systému stačí na zpracování až 2000 požadavků za sekundu na běžném serveru. Kód projektu je napsán v jazyce Haskell a je distribuován pod licencí MIT.

Například pomocí pouze mechanismu oprávnění v databázi je možné poskytnout přístup k datům (tabulkám, pohledům a uloženým procedurám) prostřednictvím protokolu HTTP. Není nutné kódování takového převodu a obvykle stačí jeden příkaz GRANT, aby byla tabulka dostupná prostřednictvím REST API. Existuje možnost nastavit přístup pomocí tokenu (JWT) a uspořádat 'multitenancy' prostřednictvím dynamické bezpečnosti na úrovni řádků (Row Level Security).

Architektonicky PostgREST podporuje datově orientovanou architekturu (Data-Oriented Architecture), kde mikroslužby samy neuchovávají stav, ale využívají k tomu jednotný přístup k datům (Data Access Layer).

Uvolnění PostgREST 9.0.0, nadstavby pro přetváření databáze na RESTful API

Mezi změnami v nové verzi:

  • Do schématu cache byly přidány partitioned tabulky, což umožnilo pro takové tabulky integrovat operace UPSERT a INSERT do odpovědi Location, provádět požadavky OPTIONS a implementovat podporu OpenAPI.
  • Přes RPC POST je povoleno vyvolávat funkce s jedním nepojmenovaným parametrem.
  • Je povoleno vyvolávat funkce s jedním JSON parametrem bez hlavičky 'Prefer: params=single-object'.
  • Je povoleno nahrávat do funkcí data typu bytea pomocí požadavků s 'Content-Type: application/octet-stream'.
  • Je povoleno nahrávat do funkcí text pomocí požadavků s 'Content-Type: text/plain'.
  • Byla přidána podpora pro escapování znaků uvnitř dvojitých závorek, například '?col=in.("Double\"Quote"), ?col=in.("Back\\slash")'.
  • Byla poskytnuta možnost filtrování zdrojů prvního úrovně na základě vnitřních filtrů ('/projects?select=*,clients!inner(*)&clients.id=eq.12').
  • V operátoru 'is' je povoleno používání hodnoty 'unknown'.
  • Byla zajištěna kompatibilita s PostgreSQL 14 a ukončena podpora PostgreSQL 9.5.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster