PostgREST est un serveur web autonome qui transforme votre base de données PostgreSQL directement en une API RESTful. Les contraintes structurelles et les permissions de la base de données déterminent les points de terminaison et les opérations de l'API.
Selon ses concepteurs, l'utilisation de PostgREST est une alternative à la programmation manuelle CRUD. Rappelons que l'acronyme informatique anglais CRUD (pour Create, Read, Update, Delete) désigne les quatre opérations de base pour la persistance des données, en particulier le stockage d'informations en base de données.
« PostgREST est performant, stable et transparent. Il nous permet d'amorcer des projets très rapidement et de nous concentrer sur nos données et notre application au lieu de construire la couche ORM. Dans notre cluster k8s, nous exécutons quelques pods par schéma que nous voulons exposer, et nous augmentons/réduisons en fonction de la demande. Nous ne pourrions pas être plus heureux », déclare Anupam Garg de Datrium, Inc.
L'écriture de la logique métier entrave souvent la structure de la base de données. Le mapping objet-relationnel est une abstraction peu fiable qui conduit à un code impératif lent. La philosophie PostgREST établit une seule source déclarative de vérité : les données elles-mêmes.
PostgreSQL, un système de gestion de données connu pour sa fiabilité et sa robustesse, bénéficie de plus de 25 ans de développement open source par une communauté mondiale de développeurs. Il s’agit de l'un des systèmes de gestion des bases de données open source les plus avancés. Il est riche en fonctionnalités, avec des types de données robustes, une indexation puissante et un large éventail de fonctions intégrées que peuvent être utilisé pour simplifier la pile de données et permettre aux développeurs de se concentrer sur la création de son application.
Le PostgreSQL Global Development Group a annoncé le 13 octobre la sortie de PostgreSQL 15, qui s'appuie sur les améliorations de performance des versions récentes avec des gains notables pour la gestion des charges de travail dans les déploiements locaux et distribués, notamment un tri amélioré. Une version aui améliore également l'expérience du développeur avec l'ajout de la populaire commande MERGE.
Programmation déclarative
Il est plus facile de demander à PostgreSQL de joindre des données pour vous et de laisser son planificateur de requêtes s'occuper des détails que de parcourir vous-même les lignes en boucle. Il est plus facile d'attribuer des permissions aux objets de la base de données que d'ajouter des mécanismes de protection dans les contrôleurs. (C'est particulièrement vrai pour les permissions en cascade dans les dépendances de données.) Il est plus facile de définir des contraintes que d'alléger le code avec des contrôles d'intégrité.
PostgREST a une portée ciblée. Il fonctionne bien avec d'autres outils comme le serveur web Nginx. Cela oblige à séparer proprement les opérations CRUD centrées sur les données des autres préoccupations.
« J'aime le fait que PostgREST ne fait qu'une chose, et une chose bien. Alors que PostgREST se charge de combler le fossé entre notre serveur HTTP et la base de données PostgreSQL, nous pouvons nous concentrer sur le développement de notre API dans un seul langage : SQL. Cela place la base de données au centre de notre architecture, et nous a poussé à améliorer nos compétences en programmation SQL et en conception de bases de données », Eric Bréchemier, ingénieur données, eGull SAS.
Avec PostgREST, aucun ORM (Object-Relational Mapping) n'est impliqué. La création de nouvelles vues se fait en SQL, avec les conséquences connues sur les performances. Un administrateur de base de données peut désormais créer une API à partir de rien, sans une programmation personnalisée.
L’ORM est un type de programme informatique qui se place en interface entre un programme applicatif et une base de données relationnelle pour simuler une base de données orientée objet. Ce programme définit des correspondances entre les schémas de la base de données et les classes du programme applicatif.
Voici, ci-dessous, quelques avis sélectionnés par l’équipe en charge de PostgREST :
« Je dois juste dire que l'utilisation du CPU et de la mémoire par rapport à notre API basée sur Node.js/Waterline ORM est ridicule. Il est même difficile de la pousser au-delà de 60/70 Mo alors que notre API actuelle atteint constamment 1 Go en fonctionnant sur 6 instances (dynos) », Louis Brauer.
« J'ai vraiment apprécié le fait que, tout à coup, j'écrivais des microservices en SQL DDL (et en fonctions JavaScript v8). J'ai évité tellement de textes passe-partout. L'instant d'après, nous avons réécrit entièrement une application Spring+MySQL en 6 mois. Littéralement 10x plus rapide, et le code était super concis. L'ancienne application avait nécessité 3 ans et une équipe de 4 personnes pour la développer », Simone Scarduzio.
Mettre en place une API RestFull depuis n'importe quelle base de données PostgreSQL
Source : PostgREST
Et vous ?
Que pensez-vous de PostgREST ? L'avez vous déjà utilisé ?
Peut-on considérer PostgREST comme une plus-value pour PostgreSQL ? Sinon, connaissez-vous des similitudes dans d'autres SGBD ?
Voir aussi :
PostgreSQL 15 est disponible, elle améliore de l'ordre de 25 % à 400 % ses algorithmes de tri en mémoire et sur disque, et apporte la populaire commande MERGE
PostgreSQL : Supabase annone la mise en libre accès de Postgres-wasm, un serveur PostgreSQL qui fonctionne dans un navigateur
IvorySQL : un PostgreSQL open source compatible avec Oracle, pourrait répondre au besoin de migrer des applications Oracle vers l'open source Postgres
PostgREST : un serveur web autonome qui fournit une API RESTful à partir de n'importe quelle base de données PostgreSQL
Il permet de contourner les ORM
PostgREST : un serveur web autonome qui fournit une API RESTful à partir de n'importe quelle base de données PostgreSQL
Il permet de contourner les ORM
Le , par Bruno
Une erreur dans cette actualité ? Signalez-nous-la !