
directement en une API RESTful
PostgREST est un serveur Web autonome qui transforme votre base de donn�es PostgreSQL directement en une API RESTful. Les contraintes structurelles et les autorisations dans la base de donn�es d�terminent les points de terminaison et les op�rations de l'API. Sa version 6.0.2 a �t� publi�e en ao�t dernier avec de nouveaux ajouts et quelques modifications. PostgREST permet d'exposer une base de donn�es PostgreSQL sous forme d'API REST directement consommables par des applications mobiles, des portails Web ou bien des partenaires.
PostgREST sert une API enti�rement RESTful � partir de tout type de base de donn�es PostgreSQL existante. Selon l��quipe de d�veloppement, PostgREST fournit une API plus propre, plus conforme aux normes et plus rapide que celle que vous �tes susceptible d'�crire � partir de z�ro. Elle estime que son utilisation est une alternative � la programmation manuelle CRUD. PostgREST est un middleware open source et les API expos�es par PostgREST sont conforme � la sp�cification OpenAPI (anciennement connue sous le nom de sp�cification Swagger).
Selon sa documentation, il g�re nativement les d�pendances entre les tables de votre base de donn�es, ce qui vous permet au travers d'une simple requ�te REST de r�cup�rer des donn�es provenant d'une jointure entre deux tables. PostgREST serait tr�s rapide avec un temps de r�ponse inf�rieur � la seconde pour jusqu'� 2000 demandes/seconde sur le niveau gratuit Heroku. � Si vous �tes habitu� aux serveurs �crits dans des langages interpr�t�s, pr�parez-vous � �tre agr�ablement surpris par les performances de PostgREST �, explique l��quipe.
Trois facteurs contribuent cette vitesse selon l��quipe. Tout d'abord, le serveur est �crit en Haskell � l'aide du serveur HTTP Warp (un langage compil� avec des threads l�gers). Ensuite, il d�l�gue autant de calculs que possible � la base de donn�es, y compris la s�rialisation des r�ponses JSON directement dans SQL, la validation des donn�es, etc. Enfin, il utilise la biblioth�que Hasql pour garder un pool de connexions � la base de donn�es, le protocole binaire PostgreSQL et reste sans �tat pour permettre une mise � l'�chelle horizontale.
PostgREST g�re l'authentification (via JSON Web Tokens) et d�l�gue l'autorisation aux informations de r�le d�finies dans la base de donn�es. Cela garantit qu'il n'y a qu'une seule source d�clarative de v�rit� pour la s�curit�. En traitant avec la base de donn�es, le serveur assume l'identit� de l'utilisateur actuellement authentifi�, et pour la dur�e de la connexion ne peut rien faire que l'utilisateur lui-m�me ne pourrait pas faire. D'autres formes d'authentification peuvent �tre construites sur la primitive JWT. Vous pouvez obtenir plus d'informations dans la documentation.
Lorsqu�il s�agit de l�int�grit� des donn�es, plut�t que de s�appuyer sur un ORM (Object Relational Mapper) et sur un codage imp�ratif personnalis�, ce syst�me impose de mettre des contraintes d�claratives directement dans votre base de donn�es. Par cons�quent, aucune application ne peut corrompre vos donn�es (y compris votre serveur API). PostgREST expose l'interface HTTP avec des sauvegardes pour �viter les surprises, notamment l'application de requ�tes PUT idempotentes. Autrement dit, il n'y a pas d'ORM impliqu�.
La cr�ation de nouvelles vues se produit en SQL avec des implications connues en mati�re de performances. Un administrateur de base de donn�es peut d�sormais cr�er une API � partir de rien, sans programmation personnalis�e. Pour certains, PostgREST est �galement une alternative int�ressante � une base de donn�es NoSQL ou GraphQL nativement expos�e en API si vous avez besoin de garder un mod�le relationnel. Ils trouvent dommage que ce middleware ne soit pas disponible en standard dans les d�p�ts de package des grandes distributions Linux.
Sources : PostgREST, GitHub
Et vous ?

Voir aussi



Vous avez lu gratuitement 0 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer � vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer � vous proposer des publications.