Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GraphQL - Un gran paso adelante

Cf18e42df2acc7a1fc1700bcd8e76487?s=47 Syrus Akbary
September 25, 2018

GraphQL - Un gran paso adelante

Slides de la presentación para Python Madrid en las oficinas de Paradigma Digital

Cf18e42df2acc7a1fc1700bcd8e76487?s=128

Syrus Akbary

September 25, 2018
Tweet

Transcript

  1. syrusakbary Graphene.tools GraphQL Un gran paso adelante

  2. syrusakbary Graphene.tools @syrusakbary MADRID SAN FRANCISCO

  3. syrusakbary Graphene.tools #GraphQLMadrid

  4. syrusakbary Graphene.tools GraphQL

  5. syrusakbary Graphene.tools REST • https://api.twitter.com/timeline • https://api.twitter.com/tweet • https://api.twitter.com/user

  6. syrusakbary Graphene.tools GraphQL es un lenguaje de consulta para tu

    API
  7. syrusakbary Graphene.tools GraphQL • https://api.twitter.com/graphql

  8. syrusakbary Graphene.tools • https://api.twitter.com/graphql

  9. syrusakbary Graphene.tools • https://api.twitter.com/graphql

  10. syrusakbary Graphene.tools • https://api.twitter.com/timeline • https://api.twitter.com/tweet • https://api.twitter.com/person REST?

  11. syrusakbary Graphene.tools REST? { }

  12. syrusakbary Graphene.tools • https://api.twitter.com/graphql { }

  13. syrusakbary Graphene.tools GraphQL Introspección Tipado Validación Flexible Universal Simple

  14. syrusakbary Graphene.tools >

  15. syrusakbary Graphene.tools GraphQL es mejor que REST

  16. syrusakbary Graphene.tools Ummm…

  17. syrusakbary Graphene.tools

  18. syrusakbary Graphene.tools Cómo puedo empezar a usar GraphQL?

  19. syrusakbary Graphene.tools

  20. syrusakbary Graphene.tools GraphQL es sólo una especificación

  21. syrusakbary Graphene.tools GraphQL en Python con

  22. syrusakbary Graphene.tools • 3 añitos desde el primer commit
 3700

    ⭐ en Github • Enorme Comunidad detrás • El framework GraphQL más usado - 500.000 instalaciones mensuales* • Usado por más de 5.000 compañías en producción
 
 
 Graphene Python
  23. syrusakbary Graphene.tools Integraciones con Servidores • Django • Flask •

    WebOb (Pylons, Pyramid) • Sanic • Aiohttp
  24. syrusakbary Graphene.tools Mapeo automático de ORMs

  25. syrusakbary Graphene.tools Integraciones con ORMs • Django • SQLAlchemy •

    Mongoengine • Google App Engine (GAE) • Peewee
  26. syrusakbary Graphene.tools Ejemplo de uso con Django

  27. syrusakbary Graphene.tools Demo Time

  28. syrusakbary Graphene.tools https://github.com/ syrusakbary/ graphqlmadrid

  29. syrusakbary Graphene.tools Buenas Prácticas

  30. syrusakbary Graphene.tools Versionado con GraphQL • No existe versionado en

    GraphQL • Estructura de sólo adición (append-only schema) • Fuerza que no haya cambios drásticos (breaking-changes) • Los campos se pueden marcar como “deprecados” (obsoletos), advirtiendo al cliente cuando los use.
 (mientras haya campos obsoletos que son utilizados por los clientes, tendrán que ser mantenidos) • Eliminar los campos deprecados una vez no tengan ningún uso
  31. syrusakbary Graphene.tools Relay Relay es una especificación que extiende GraphQL

    y añade dos nuevas prácticas en los servidores: • Nodos (Nodes) • Permiten que se pueda acceder a ellos desde la Query principal • Fuerza que haya id’s globalmente únicos • Conexiones (Connections) • Ayudan de forma significativa a paginar listas de elementos
  32. syrusakbary Graphene.tools Cómo empezar* un proyecto open-source *y poder vivir

    de ello
  33. syrusakbary Graphene.tools Pasos • Crea un README detallado y bonito

    *en inglés, si es posible • Se claro/a con el problema que la librería resuelve • Pregunta por feedback a la comunidad • Marketing, mucho marketing: • Envía emails a gente que pueda estar interesada • Difúndelo en Hacker News, Reddit… • GitHub Trending
  34. syrusakbary Graphene.tools Como empezó Graphene • Ya existía una librería

    para usar GraphQL en Python, pero era difícil de utilizar (graphql-core) • Resolvía un problema - usar GraphQL en Python fácilmente • Código muy básico (y feo ) - API first • Contacto directo (via email) a gente que pudiera estar interesada, para que lo utilizaran y dieran feedback
  35. syrusakbary Graphene.tools …y cómo vivir de ello • Ofrecer soporte

    comercial a empresas • Utiliza Patreon / OpenCollective para recibir ayuda de la comunidad • Lanza features adicionales de pago • Aplicar a fondos: MOSS, Stripe Open Source