3 points par GN⁺ 2023-12-19 | 1 commentaires | Partager sur WhatsApp

Comment fournir du contenu HTML

  • Présentation de la manière de renvoyer du contenu HTML et de traiter des requêtes AJAX à l’aide de PostgREST et de la bibliothèque htmx.
  • htmx attend des réponses HTML et les utilise pour remplacer des éléments dans le DOM.

Configuration initiale

  • Création d’une application de liste de tâches (to-do) basée sur le tutoriel 0.
  • Le tutoriel se déroule sans authentification, avec tous les droits accordés à l’utilisateur web_anon sur la table todos.
  • Ajout de text/html comme gestionnaire de type média afin que PostgREST reconnaisse les requêtes du navigateur web comme des documents HTML.

Génération de réponses HTML

  • Création d’une fonction qui renvoie un fichier HTML de base en utilisant Tailwind CSS.
  • Le navigateur web peut ouvrir la page à l’adresse http://localhost:3000/rpc/index.

Lister et créer des tâches

  • Création d’une fonction qui affiche la liste des tâches déjà enregistrées dans la base de données.
  • Elle est utilisée pour construire le modèle de la liste des tâches et n’est pas utilisée comme endpoint PostgREST.
  • Ajout d’un endpoint pour enregistrer une tâche dans la base de données et modification de la page /rpc/index.

Modifier et supprimer des tâches

  • Modification de la fonction api.html_todo pour la rendre plus fonctionnelle.
  • Ajout de nouvelles fonctionnalités htmx : changement d’état d’une tâche, renvoi d’un HTML modifiable pour une tâche, suppression d’une tâche.
  • Ajout d’endpoints pour modifier une tâche et pour mettre à jour et supprimer des tâches dans la base de données.

L’avis de GN⁺

  • Cet article peut intéresser les développeurs web, car il explique comment fournir du contenu HTML dynamique dans des applications web à l’aide de PostgREST et de la bibliothèque htmx.
  • Les mises à jour asynchrones de pages web via AJAX constituent un aspect important du développement web moderne, et cet article fournit un exemple concret pour mettre en œuvre ce type de fonctionnalité.
  • C’est une bonne ressource pour apprendre à améliorer l’interface utilisateur et à optimiser la communication entre le serveur et le client.

1 commentaires

 
GN⁺ 2023-12-19
Avis Hacker News
  • Résumé des commentaires Hacker News sur PostgREST :
    • Appréciation du projet open source PostgREST : un utilisateur cite PostgREST comme l’un de ses projets open source préférés et indique que le succès de Supabase doit beaucoup à l’excellente conception de PostgREST et de Postgres. Il précise ne pas savoir à quel point Supabase soutient financièrement le projet PostgREST, mais regrette qu’il n’y ait que 12 sponsors alors que de nombreuses entreprises l’utilisent.
    • Difficultés du développement d’applications avec PostgREST : un autre utilisateur explique que son expérience de développement d’applications avec PostgREST n’a pas été bonne, en soulignant que même les frameworks qui paraissent simples finissent par poser problème lorsque les exigences se complexifient. Dans ce cas, les développeurs ont dû écrire de nombreuses procédures stockées dans la base de données pour obtenir le résultat souhaité, ce qui a entraîné des problèmes de scalabilité.
    • Difficultés de maintenance : un autre utilisateur estime que PostgREST est excellent comme preuve de concept, mais que maintenir en pratique des applications web complexes avec cet outil serait un cauchemar.
    • L’attrait d’une stack web simple : un utilisateur juge attrayante une stack de développement web composée uniquement de HTML et d’une base de données, en appréciant le fait qu’elle ne nécessite ni backend ni frontend.
    • Patterns de code dans les applications nouvelles/modernes : en prenant l’exemple de bases de données documentaires JSON comme Couchdb, un utilisateur décrit une approche où le client accède directement à la base de données pour recevoir du HTML ou du JSON. Il ajoute toutefois que cette méthode rendait la maintenance difficile, au point que le développement a été abandonné.
    • L’originalité de PostgREST vue depuis Haskell : un utilisateur considère que, du point de vue de Haskell, PostgREST est un projet évident, et que c’est précisément là que réside son génie.
    • Présentation de SmoothDB : un développeur présente un nouveau projet appelé SmoothDB, publié sur GitHub avec l’objectif d’être compatible avec PostgREST, tout en précisant qu’il est encore en version bêta. SmoothDB est écrit en Go et peut être utilisé de façon autonome ou comme module dans des applications serveur complexes.
    • Un article sur un pipeline de validation de données avec PostgREST : un utilisateur mentionne avoir écrit un article expliquant comment utiliser PostgREST comme pipeline générique de validation de données, et prépare un article suivant sur son utilisation comme couche CQRS/REST API.
    • La combinaison de PostgREST et HTMX : un utilisateur explique avoir déjà utilisé PostgREST dans un projet précédent et estime qu’il s’associe bien avec HTMX. Il exprime toutefois des réserves sur la maintenance de templates HTMX à l’intérieur de fonctions SQL.
    • Des outils supplémentaires pour en faire une stack maintenable : un utilisateur demande quels outils additionnels seraient nécessaires pour faire évoluer ce concept vers une stack maintenable, capable d’offrir une bonne UX pour des applications de taille moyenne à grande.