Sortie de PostgREST 9.0.0, une couche pour transformer une base de données en API RESTful

La sortie de PostgREST 9.0.0, un serveur web autonome implémentant une légère couche pour la base de données PostgreSQL, traduit des objets à partir d'une base de données existante en API RESTful. Au lieu de refléter des données relationnelles en objets (ORM), PostgREST crée des vues directement dans la base de données. La sérialisation des réponses JSON, la validation des données et l'autorisation sont également effectuées du côté de la base de données. Le système dispose de performances suffisantes pour traiter jusqu'à 2000 requêtes par seconde de manière typique. le serveur. Le code du projet est écrit en Haskell et est distribué sous licence MIT.

Par exemple, en utilisant uniquement le mécanisme de privilèges dans la base de données, vous pouvez fournir un accès aux données (tables, vues et procédures stockées) via le protocole HTTP. Il n'est pas nécessaire de coder cette transformation, une seule commande GRANT est généralement suffisante pour qu'une table soit accessible via l'API REST. Il est possible de configurer l'accès par token (JWT) et de mettre en place une « multitenancy » grâce à l'utilisation de la sécurité dynamique au niveau des lignes (Row Level Security).

Architecturalement, PostgREST pousse vers une architecture orientée données (Data-Oriented Architecture), où les microservices ne conservent pas d'état eux-mêmes, mais utilisent un accès unique aux données (Data Access Layer).

Sortie de PostgREST 9.0.0, une couche pour transformer une base de données en API RESTful

Parmi les changements dans la nouvelle version :

  • Des tables partitionnées ont été ajoutées au schéma de cache, ce qui a permis d'intégrer des opérations UPSERT et INSERT dans la réponse Location, d'effectuer des requêtes OPTIONS et de mettre en œuvre le support d'OpenAPI.
  • Il est maintenant possible d'appeler des fonctions par RPC POST avec un seul paramètre non nommé.
  • Il est possible d'appeler des fonctions avec un seul paramètre JSON sans l'en-tête « Prefer: params=single-object ».
  • Il est possible de transférer des données de type bytea dans des fonctions, en utilisant des requêtes avec « Content-Type: application/octet-stream ».
  • Il est possible de transférer du texte dans des fonctions, en utilisant des requêtes avec « Content-Type: text/plain ».
  • Ajout du support de l'échappement des caractères à l'intérieur de doubles crochets, par exemple, « ?col=in.(«Double\»Quote»), ?col=in.(«Back\\slash») ».
  • Offre la possibilité de filtrer les ressources de premier niveau sur la base de filtres intégrés ( « /projects?select=*,clients!inner(*)&clients.id=eq.12 » ).
  • Il est permis d'utiliser la valeur « unknown » dans l'opérateur « is ».
  • Assure la compatibilité avec PostgreSQL 14 et met fin au support de PostgreSQL 9.5.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster