Peticiones de datos modularizables

Un comentario sobre cómo Facebook modulariza las peticiones de datos al servidor.

Recomiendo que echéis un vistazo al video Data fetching for React applications:

Obviando los detalles específicos a ReactJS, Relay y GraphQL la propuesta tiene 2 ideas interesantes:

  • la primera sería que el servidor no tiene muchos endpoints específicos, sino uno al que se le hacen consultas en un formato determinado (GraphQL) y devuelve respuestas en JSON. Hasta aquí nada novedoso porque este estilo de APIs han emergido en los últimos años en muchos productos, sobre todo usando la potencia de SQL (ej: CartoDB).
  • lo novedoso sería cómo se contruye esa petición. Lo típico sería hacerlo en un componente padre que “conoce” lo que necesitan sus hijos. Pongamos un ejemplo usando SQL: el padre lanzaría al API del servidor una consulta tal que «SELECT name, image, etc FROM users » porque sabe que uno de sus hijos necesita la propiedad name y otro la propiedad image. Esta aproximación provoca acoplamiento ya que si uno de los hijos cambia la propiedad que necesita, es necesario hacer cambios en todo el árbol hasta llegar al padre. La propuesta que hacen invierte el control: son los componentes hijos los que declaran qué propiedades necesitan. En este escenario, el padre es agnóstico respecto a los datos que piden los hijos al servidor y centraliza esta lógica en cada componente.

1 thought on “Peticiones de datos modularizables”

Leave a Reply