Introducción a GraphQL con Python 

Federico Marcos

 

Developer @Celerative

github.com/marcosfede

marcosfede@gmail.com

Endpoints reutilizables

Custom Endpoints

Problemas actuales entre Cliente y Servidor

  • Cómo enviar solo la información que el cliente necesita

    • Tamaño del Payload (Información enviada (ejemplo)

    • mala señal o baja calidad de red

  • Cómo manejar información de recursos relacionados

    • Duplicación de data

    • Custom / integration endpoints

    • Tiempo de espera por múltiples requests

    • No single roundtrip si necesitas más de un recurso

SWAPI Demo

Que NO es GraphQL

  • Una libreria
  • una base de datos de grafos
  • limitada a una BBDD especifica
  • Específico a un lenguaje
  • Limitado a usarse con una libreria en el cliente
  • Limitado a HTTP
  • Lenguaje de consulta
  • Una especificacion con implementaciones en varios lenguajes
  • Open sourced por Facebook en 2015
  • Puede usarse con cualquier tipo de DB / sin DB
  • Habilidad de consultar exactamente lo que necesitas y nada mas
  • Obtener multiples recursos en un solo request
  • Desacoplar las necesidades del Front al backend

Que es GraphQL

Type System

 

Security

 

Subscripciones

 Clientes de Frontend

Python demo

 

Ventajas

  • clean decoupling de API y backend permite iteraciones y mejoras mucho mas rápidas
  • Amplias posiblidades de optimización de las querys, cantidad de roundtrips y tamaño del payload
  • El manejo de data de forma declarativa del lado del cliente ahorra mucho tiempo y complejidad en los proyectos

Desventajas

  • Curva de aprendizaje
  • Algunas librerias no estan listas para produccion / features faltantes

Gracias!

Preguntas? 

Introduccion a GraphQL con Python

By Federico Marcos

Introduccion a GraphQL con Python

  • 283