Release van PostgREST 9.0.0, add-ons om de database om te zetten in een RESTful API

Er werd PostgREST 9.0.0 uitgebracht, een afzonderlijk werkende webserver met de implementatie van een lichtgewicht add-on op het PostgreSQL DBMS, die objecten uit een bestaande database vertaalt naar een RESTful API. In plaats van relationele gegevens in objecten (ORM's) in kaart te brengen, creëert PostgREST weergaven rechtstreeks in de database. De databasekant verzorgt ook de serialisatie van JSON-antwoorden, gegevensvalidatie en autorisatie. De systeemprestaties zijn voldoende om tot 2000 verzoeken per seconde op een typische server te verwerken. De projectcode is geschreven in Haskell en gedistribueerd onder de MIT-licentie.

Als u bijvoorbeeld alleen het databaseprivilegemechanisme gebruikt, kunt u via HTTP toegang verlenen tot gegevens (tabellen, weergavetypen en opgeslagen procedures). In dit geval is het niet nodig om een ​​dergelijke vertaling te coderen en meestal is één GRANT-commando voldoende om de tabel beschikbaar te maken via de REST API. Het is mogelijk om toegang per token (JWT) te configureren en “multitenancy” te organiseren door het gebruik van dynamische beveiliging op rijniveau (Row Level Security).

Architectonisch beweegt PostgREST zich richting een datageoriënteerde architectuur (Data-Oriented Architecture), waarbij microservices zelf geen statussen opslaan, maar hiervoor een enkele toegang tot data (Data Access Layer) gebruiken.

Release van PostgREST 9.0.0, add-ons om de database om te zetten in een RESTful API

Onder de veranderingen in de nieuwe versie:

  • Er zijn gepartitioneerde tabellen toegevoegd aan de cache van het opslagschema, waardoor dergelijke tabellen UPSERT- en INSERT-bewerkingen konden insluiten in het locatieantwoord, OPTIONS-query's konden uitvoeren en OpenAPI-ondersteuning konden implementeren.
  • Via RPC POST is het toegestaan ​​om functies aan te roepen met één naamloze parameter.
  • Het is toegestaan ​​om functies met één JSON-parameter aan te roepen zonder de header “Prefer: params=single-object”.
  • Het is toegestaan ​​om gegevens van het type bytea in functies te laden met behulp van verzoeken met “Content-Type: application/octet-stream”.
  • Toegestaan ​​om tekst in functies te laden met behulp van query's met "Content-Type: text/plain".
  • Ondersteuning toegevoegd voor escape-tekens tussen dubbele haakjes, bijvoorbeeld "?col=in.("Double\"Quote"), ?col=in.("Back\\slash")".
  • Er is de mogelijkheid geboden om bronnen op het eerste niveau te filteren op basis van ingebouwde filters ("/projects?select=*,clients!inner(*)&clients.id=eq.12".
  • De operator "is" staat de waarde "onbekend" toe.
  • Compatibiliteit met PostgreSQL 14 is bereikt en ondersteuning voor PostgreSQL 9.5 is stopgezet.

Bron: opennet.ru

Voeg een reactie