3 puntos por GN⁺ 2023-12-19 | 1 comentarios | Compartir por WhatsApp

Cómo proporcionar contenido HTML

  • Introducción a cómo devolver contenido HTML y procesar solicitudes AJAX usando PostgREST y la librería htmx.
  • htmx espera respuestas HTML y las usa para reemplazar elementos dentro del DOM.

Configuración previa

  • Creación de una app de tareas pendientes (to-do) basada en el tutorial 0.
  • Se trabaja sin autenticación y se otorgan todos los permisos sobre la tabla todos al usuario web_anon.
  • Se agrega text/html como manejador de tipo de medio para que PostgREST reconozca las solicitudes del navegador web como documentos HTML.

Generación de respuestas HTML

  • Creación de una función que devuelve un archivo HTML básico usando Tailwind CSS.
  • El navegador web puede abrir la página web en http://localhost:3000/rpc/index.

Listado y creación de tareas

  • Creación de una función para mostrar la lista de tareas ya ingresadas en la base de datos.
  • Se usa para construir la plantilla de la lista de tareas y no se utiliza como endpoint de PostgREST.
  • Se agrega un endpoint para registrar tareas en la base de datos y se modifica la página /rpc/index.

Edición y eliminación de tareas

  • Se modifica la función api.html_todo para hacerla más funcional.
  • Se agregan nuevas funciones de htmx: cambiar el estado de la tarea, devolver HTML editable para una tarea y eliminar una tarea.
  • Se agregan endpoints para editar tareas y modificar y eliminar tareas en la base de datos.

Opinión de GN⁺

  • Este artículo puede resultar interesante para desarrolladores web, porque explica cómo proporcionar contenido HTML dinámico en aplicaciones web usando PostgREST y la librería htmx.
  • Las actualizaciones asíncronas de páginas web mediante AJAX son una parte importante del desarrollo web moderno, y este artículo ofrece ejemplos concretos para implementar esas funciones.
  • Es un buen recurso para aprender a mejorar la interfaz de usuario y optimizar la comunicación entre el servidor y el cliente.

1 comentarios

 
GN⁺ 2023-12-19
Opiniones en Hacker News
  • Resumen de los comentarios de Hacker News sobre PostgREST:
    • Aprecio por el proyecto open source PostgREST: Un usuario lo señaló como uno de sus proyectos de código abierto favoritos y mencionó que el éxito de Supabase se debe al gran diseño de PostgREST y Postgres. También dijo que no sabe cuánto patrocina Supabase al proyecto PostgREST, pero lamentó que, aunque muchas empresas lo usan, solo tenga 12 patrocinadores.
    • Dificultades al desarrollar apps con PostgREST: Otro usuario comentó que su experiencia desarrollando una app con PostgREST no fue buena, y señaló que incluso los frameworks que parecen simples empiezan a fallar cuando los requisitos se vuelven complejos. En este caso, los desarrolladores tuvieron que escribir muchos stored procedures en la base de datos para obtener el resultado deseado, lo que generó problemas de escalabilidad.
    • Dificultad de mantenimiento: Otro usuario opinó que PostgREST es genial como prueba de concepto, pero que mantener una aplicación web compleja real sería una pesadilla.
    • El atractivo de un stack web simple: Un usuario valoró positivamente un stack de desarrollo web compuesto solo por HTML y base de datos, destacando como ventaja que no se necesite ni backend ni frontend.
    • Patrones de código en aplicaciones nuevas/modernas: Poniendo como ejemplo bases de datos de documentos JSON como CouchDB, un usuario explicó un enfoque en el que el cliente accede directamente a la base de datos para recibir HTML o JSON. Sin embargo, mencionó que ese enfoque dificultó el mantenimiento y que el desarrollo terminó deteniéndose.
    • La originalidad de PostgREST desde la perspectiva de Haskell: Un usuario comentó que, visto desde Haskell, PostgREST es un proyecto evidente, y que justamente ahí radica su genialidad.
    • Presentación de SmoothDB: Un desarrollador presentó en GitHub un nuevo proyecto llamado SmoothDB, cuyo objetivo es ser compatible con PostgREST, y mencionó que todavía está en beta. SmoothDB está escrito en Go y puede usarse de forma independiente o como módulo dentro de una aplicación de servidor compleja.
    • Artículo sobre un pipeline de validación de datos con PostgREST: Un usuario comentó que escribió un artículo sobre cómo usar PostgREST como un pipeline general de validación de datos, y que está preparando el siguiente artículo sobre cómo usarlo como capa de API CQRS/REST.
    • La combinación de PostgREST y HTMX: Un usuario comentó que usó PostgREST en un proyecto anterior y que combina bien con HTMX. Sin embargo, expresó preocupación por mantener templates de HTMX dentro de funciones SQL.
    • Herramientas adicionales para evolucionar hacia un stack mantenible: Un usuario preguntó qué herramientas adicionales harían falta para convertir este concepto en un stack mantenible que ofrezca una buena UX en aplicaciones medianas y grandes.