Llançament de PostgREST 9.0.0, complements per convertir la base de dades en una API RESTful

Es va llançar PostgREST 9.0.0, un servidor web que funciona per separat amb la implementació d'un complement lleuger al SGBD PostgreSQL, que tradueix objectes d'una base de dades existent a una API RESTful. En lloc de mapejar dades relacionals en objectes (ORM), PostgREST crea vistes directament a la base de dades. El costat de la base de dades també gestiona la serialització de respostes JSON, la validació de dades i l'autorització. El rendiment del sistema és suficient per processar fins a 2000 sol·licituds per segon en un servidor típic. El codi del projecte està escrit en Haskell i es distribueix sota la llicència MIT.

Per exemple, utilitzant només el mecanisme de privilegis de base de dades, podeu concedir accés a les dades (taules, tipus de visualització i procediments emmagatzemats) mitjançant HTTP. En aquest cas, no cal codificar aquesta traducció i normalment una ordre GRANT és suficient per fer que la taula estigui disponible mitjançant l'API REST. És possible configurar l'accés per testimoni (JWT) i organitzar la "multitenancy" mitjançant l'ús de seguretat dinàmica a nivell de fila (Row Level Security).

Arquitectònicament, PostgREST impulsa una arquitectura orientada a dades (Data-Oriented Architecture), on els microserveis no guarden els estats ells mateixos, sinó que utilitzen un únic accés a les dades (Data Access Layer) per a això.

Llançament de PostgREST 9.0.0, complements per convertir la base de dades en una API RESTful

Entre els canvis de la nova versió:

  • Es van afegir taules particionades a la memòria cau de l'esquema d'emmagatzematge, la qual cosa va fer possible que aquestes taules poguessin incrustar operacions UPSERT i INSERT a la resposta d'ubicació, executar consultes OPCIONS i implementar suport OpenAPI.
  • Mitjançant RPC POST es permet cridar funcions amb un paràmetre sense nom.
  • Es permet cridar funcions amb un paràmetre JSON sense la capçalera "Prefer: params=single-object".
  • Es permet carregar dades de tipus bytea en funcions mitjançant sol·licituds amb "Tipus de contingut: aplicació / flux d'octets".
  • Es permet carregar text a funcions mitjançant consultes amb "Tipus de contingut: text/plain".
  • S'ha afegit suport per escapar de caràcters entre claudàtors dobles, per exemple, "?col=in.("Double\"Quote"), ?col=in.("Back\\slash")".
  • S'ha proporcionat la possibilitat de filtrar recursos de primer nivell basant-se en filtres integrats ("/projects?select=*,clients!inner(*)&clients.id=eq.12".
  • L'operador "is" permet el valor "desconegut".
  • S'ha assolit la compatibilitat amb PostgreSQL 14 i el suport per a PostgreSQL 9.5 s'ha interromput.

Font: opennet.ru

Afegeix comentari