00:00:00Et si votre base de données Postgres était l'API et que vous n'aviez aucun code backend à écrire ?
00:00:05Chaque fois que vous créez une API, vous écrivez le même code backend. Routes, contrôleurs, validation, auth, tout ça juste pour parler à votre
00:00:14base de données. Puis vous changez une colonne et tout casse. Pas de code backend personnalisé. Pas de contrôleurs. Pas de couche ORM.
00:00:21C'est ce que fait Postgres. C'est le moteur derrière Supabase. Il gère un trafic de production sérieux et en quelques minutes
00:00:29je vais vous montrer comment.
00:00:31Maintenant, si vous créez des API, celle-ci s'attaque aux points les plus agaçants de toute la pile.
00:00:40La logique dupliquée. Vous définissez les données dans la base de données.
00:00:44Ensuite, vous définissez les règles d'accès, le code backend et la validation ailleurs.
00:00:49Puis on fait de même pour la gestion des réponses ailleurs. Même système, plusieurs couches, multiples chances que ça casse.
00:00:56Postgres simplifie tout ça. Il a plus de 26 000 étoiles sur GitHub et est utilisé par Supabase à l'échelle de la production.
00:01:03Il transforme votre schéma en une API REST prête pour la production en quelques minutes. Pas d'ORM, pas de contrôleurs.
00:01:10La sécurité réside dans la base de données, ce qui signifie moins de duplication, moins de maintenance et beaucoup moins de temps passé à tout câbler.
00:01:19Laissez-moi vous montrer. Si vous aimez les outils de codage qui accélèrent votre flux de travail, n'oubliez pas de vous abonner.
00:01:24Nous publions des vidéos tout le temps.
00:01:26Très bien. Maintenant, construisons concrètement ce truc. Voici la configuration : trois conteneurs.
00:01:32C'est tout. Postgres, PostgREST, et Swagger UI pour la documentation.
00:01:38Voici le fichier Docker Compose. Rien de spécial ici. Juste trois services que j'ai reliés entre eux.
00:01:45Je le lance avec notre commande infaillible Docker Compose. Ça va démarrer et j'ai terminé.
00:01:51Pas de dépendances à installer. Pas de serveur à configurer. Maintenant, regardons la base de données.
00:01:55Je vais lancer cette commande Docker ici et c'est tout. Une table "todos" super simple : ID, titre, complété, créé, tout le contenu de base.
00:02:04C'est vraiment tout ce qu'il y a. Mais voici la partie où cela devient utile.
00:02:09La sécurité au niveau des lignes (RLS). Nous définissons qui peut accéder à quoi directement en SQL dans la base de données.
00:02:17Aucune logique d'authentification backend ne traîne ailleurs dans notre système. Voici la politique.
00:02:22J'ai un accès complet anonyme avec "true". Donc pour l'instant, tout est autorisé. Maintenant, regardez ça.
00:02:29Je vais appeler "get todos" avec cette commande curl et c'est tout. Du JSON complet venant directement de Postgres.
00:02:35Pas de code API. En partant de là, laissez-moi filtrer maintenant. Ça fonctionne immédiatement.
00:02:41Si je trie, boum, voilà. Maintenant créons une autre ligne, envoyons une requête POST avec un corps JSON et c'est fini.
00:02:50Et c'est déjà dans la base de données. Il n'y a pas de couche ORM qui essaie de suivre ici.
00:02:56Et voici la partie qui impressionne vraiment les gens : la doc Open API, Swagger UI auto-généré. C'est juste là.
00:03:04Je l'ouvre et nous avons une API interactive complète. Vous pouvez tout explorer, tester les points de terminaison, voir les schémas.
00:03:11Donc, en partant de zéro, vous avez maintenant un CRUD complet, du filtrage, du tri, de la pagination. Vous avez l'auth de base via RLS et la doc en moins d'une minute.
00:03:21Alors pourquoi les gens utilisent-ils ça ? Si cela ne suffisait pas, c'est parce que le travail backend traditionnel a un coût.
00:03:26Et la majeure partie de ce coût n'est pas liée au produit lui-même. En fait, nous faisons tout ce travail de maintenance, n'est-ce pas ?
00:03:33Si vous pensez à la pile normale, c'est peut-être Express, Prisma, des contrôleurs, des services, la validation à un endroit.
00:03:40Ensuite, nous avons l'auth ailleurs. Votre logique de base de données est encore à un autre endroit.
00:03:45Maintenant comparez cela à Postgres. Votre schéma définit l'API. Votre sécurité est la RLS.
00:03:52Vos relations existent déjà dans la base de données. Donc au lieu de construire une couche de traduction autour de vos données, nous exposons simplement les données correctement.
00:04:02C'est très différent. Maintenant, comparez cela à un backend personnalisé. Vous devez tout écrire vous-même.
00:04:07Cela vous donne de la flexibilité, certes. Mais cela vous donne aussi beaucoup plus de code à maintenir.
00:04:13Postgres reste plus simple. REST plus Postgres. La sécurité est dans la base. Elle n'est pas dispersée dans des middlewares ou des gestionnaires de routes.
00:04:23Votre maintenance reste faible car votre API suit votre schéma. C'est pour ça que les gens aiment ça.
00:04:28Maintenant, pour être honnête, c'est là que les gens ont des ennuis parce que quand quelque chose commence à paraître aussi propre, on agit comme si ça résolvait tout.
00:04:34Ça ne résout pas tout, d'accord ? Il y a toujours des points de vigilance.
00:04:38Il y aura des compromis et vous devriez savoir quoi surveiller avant même d'y toucher.
00:04:43Ce que les gens adorent ici est assez évident. C'est rapide à construire. On passe de l'idée à une API fonctionnelle très vite.
00:04:51Et ça passe très bien à l'échelle aussi. En plus de cela, Supabase en est un peu la preuve.
00:04:55Ils l'utilisent. Mais les inconvénients sont, par exemple, qu'une utilisation intensive de la RLS va augmenter la charge de la base de données.
00:05:02Vous devez donc réfléchir soigneusement à la conception. Une logique complexe peut vous pousser vers beaucoup de fonctions SQL ou de vues.
00:05:10Et certains adorent ça, tandis que d'autres vont détester. Alors, devriez-vous l'utiliser ou même essayer ?
00:05:15Oui, pour les bons projets. Si vous construisez des prototypes, des MVP ou n'importe quoi centré sur Postgres, alors bien sûr, pourquoi ne pas essayer ?
00:05:23Vous irez plus vite. Vous écrirez moins de code et vous obtiendrez des paramètres de sécurité plus robustes en poussant les règles dans la base de données.
00:05:32Maintenant, si votre application a une logique vraiment complexe, vous voudrez peut-être toujours une fine couche backend par-dessus, un petit layer BFF pour les cas particuliers.
00:05:40Mais même là, Postgres peut faire le plus gros du travail en dessous. Donc le point essentiel est celui-ci : Postgres vous permet de livrer plus vite, de mieux sécuriser et de moins maintenir.
00:05:50Votre base de données devient la source réelle des données, et votre API en découle au lieu de devenir son propre système séparé.
00:05:58Si vous appréciez les outils et conseils de codage comme celui-ci, abonnez-vous à la chaîne Better Stack. On se voit dans une autre vidéo.