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
REST: https://swapi.co/api/
GraphQL: http://graphql.org/swapi-graphql/
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