PostgREST, générer automatiquement une API REST depuis une DB

Un projet très intéressant qui ajoute automatiquement à une base de donnée PostgreSQL un backend REST complet !

Très riche en fonctionnalités :

  • sélection de champs comme en graphql,
  • filtres,
  • tris,
  • jointures,
  • pagination,
  • schema OpenAPI.

Les permissions DB sont directement converties en permissions API donc on fait à peu prêt ce qu'on veut à coup de JWT et de rôle postgreSQL, voir même de ROW AUTHORITY pour donner des permissions sur certains objets uniquement.

Avantages

PostgREST permet de prototyper un backend super rapidement avec de très bonne performances.

Notamment, pas de risque de faire des query O(N) par erreur.

Désavantages

Si on veut en faire une vraie application en production, on trouve vite les limites du simple REST classique, il faut alors se lancer dans de l'administration de DB bas-niveau :

  • écriture de procedure stockée,
  • trigger,
  • view,
  • etc

Ça peut vite devenir un sacré bordel, long à dev et dur à debugger. Il faudra être très bon en SQL, mais au moins la performance sera au rendez-vous.

Bonus