De PostgREST 9.0.0-release is geïntroduceerd, een zelfstandig werkende webserver die een lichte uitbreiding van de PostgreSQL-database beheert, die objecten uit de bestaande database naar een RESTful API vertaalde. In plaats van relationele gegevens naar objecten (ORM) te spiegelen, worden in PostgREST weergaven rechtstreeks in de database aangemaakt. Aan de databasezijde worden ook JSON-antwoorden geserialiseerd, gegevens geverifieerd en autorisatie uitgevoerd. Het systeem kan tot 2000 verzoeken per seconde verwerken onder normale omstandigheden. de server. Het project is geschreven in Haskell en wordt verspreid onder de MIT-licentie.
Bijvoorbeeld, door alleen het privilege-systeem van de database te gebruiken, kan toegang tot gegevens (tabellen, weergaven en opgeslagen procedures) via het HTTP-protocol worden verleend. Dit vereist geen codering van deze vertaling en meestal is slechts één GRANT-opdracht nodig om de tabel toegankelijk te maken via de REST API. Toegang op basis van tokens (JWT) is mogelijk en 'multitenancy' kan worden georganiseerd door gebruik te maken van dynamische beveiliging op rij-niveau (Row Level Security).
Architectonisch stimuleert PostgREST een data-georiënteerde architectuur (Data-Oriented Architecture), waarbij microservices zelf geen status bewaren, maar een uniforme toegang tot gegevens (Data Access Layer) gebruiken.

Onder de wijzigingen in de nieuwe versie:
- In de vergeten gegevensopslagstructuren zijn gepartitioneerde tabellen toegevoegd, waardoor het mogelijk werd om UPSERT- en INSERT-bewerkingen in het Location-antwoord in te bedden, OPTIONS-verzoeken uit te voeren en OpenAPI-ondersteuning te implementeren.
- Via RPC POST is het toegestaan om functies met één ongeconfigureerde parameter aan te roepen.
- Het is toegestaan om functies aan te roepen met één JSON-parameter zonder de 'Prefer: params=single-object' header.
- Het is toegestaan om gegevens van het type bytea in functies te uploaden met verzoeken van 'Content-Type: application/octet-stream'.
- Het is toegestaan om tekst in functies te uploaden met verzoeken van 'Content-Type: text/plain'.
- Ondersteuning voor het escapen van tekens binnen dubbele haakjes is toegevoegd, bijvoorbeeld '?col=in.("Double\"Quote"), ?col=in.("Back\\slash").
- Er is een mogelijkheid tot het filteren van first-level resources op basis van ingebouwde filters (‘/projects?select=*,clients!inner(*)&clients.id=eq.12’).
- In de 'is'-operator is het gebruik van de waarde ‘unknown’ toegestaan.
- Compatibiliteit met PostgreSQL 14 is gewaarborgd en ondersteuning voor PostgreSQL 9.5 is stopgezet.
Bron: opennet.ru
