Desarrollando APIS GraphQL con java

Desarrollando APIS GraphQL con java

Desarrollando APIS GraphQL con java con Omar Berroteran del JUG de Nicaragua.

Transcript

  1. Creando Web APIs con GraphQL Por Por Omar Berroteran Silva

    Omar Berroteran Silva J.U.G Nicaragua J.U.G Nicaragua
  2. 2 Un poco de mí... @berroteranLKF Ómar Berroterán Silva. Consultor

    Independiente. +15 años como Developer Full Stack +15 años en java +15 años Linuxero (Gentoo & Fedora) • Blogger, Gamer, Linux contributor. • Robotica Educativa. • Entrenador. • Conferencista nacional e internacional • Developer Advocate
  3. 3 Contenido 1)Una breve introduccion: Que es GrahpQL 2)Cuales son

    sus ventajas y observaciones 3)Implementaciones en Java 4) DEMO
  4. 4 ¿Que es un A.P.I.? Interfaz de programación para Aplicaciones.

    API + Webservice (SOAP o REST) = WEB API
  5. 5 Un WebService REST, Estandart

  6. 6 RESTful school mode. web-Api

  7. 7 Rest • /getClienteByID • /ClienteMinimo • /ClienteDireccion • /Usuario

    • /UsuarioRoles • /UsuarioNombre • /ClienteSaldo • /ClientePedidos
  8. 8 GraphQL : Lenguaje de Consultas Graph https://graphql.org/

  9. 9 ¿Que es GraphQL ? GraphQL no es una librería

    o framework: es una especificación de cómo implementarlo en cualquier lenguaje.(casi same RESTful) (2012 - 2015) Por tal razón existen implementaciones ya creadas en lenguajes como JavaScript, Ruby, Python, Scala, Java, Clojure, Go, PHP, .NET, etc. También existen clientes para consumir un API GraphQL desde JS, iOS, Android, React, Angular, entre otras.
  10. 10 ¿Como Funciona?

  11. 11 Características Principales 1) Un solo EndPoint (personalizado) /graphql 2)

    Lenguaje (Query) 3) “fuertemente tipado” 4) POO
  12. 12 CONCEPTOS

  13. 13 Formas de Interactuar 1

  14. 14 Formas de Interactuar 1

  15. 15 Formas de Interactuar 2: mutación

  16. 16 Formas de Interactuar 3: Subscripcion Recibir notificaciones, Enterarse de

    lo que pasa en el servidor. No esta implementado en todos. WebSockets
  17. 17 Formas de Interactuar 3: Subscripción

  18. 18 Formas de Interactuar 4: Introspección A menudo es útil

    pedir un esquema de GraphQL para obtener información sobre las consultas que admite.
  19. 19 test

  20. 20 Herramientas Graphil http://graphql.org/learn/ https://www.howtographql.com/ Apollo GraphQL : react, ios,

    android, server https://github.com/apollographql Ports a casi todas las plataformas.
  21. None
  22. 22 Ventajas de GraphQL - Un solo EndPoint (mantemimiento) -

    PayLoad (definido x por el cliente, redux, relay) - IntrosPeccion ( Desarrollado ) - Especificacion ( Implementacion, documentado ) - Releases ( CI, versionado ) - Documentación (GraphFiQL) - Suscripciones (Automáticas) - validaciones, seguridad, restricciones. (tipado)
  23. 23 Aceptacion https://nordicapis.com/10-awesome-tools-and-extensions-for-graphql-apis/

  24. 24 Java: Implementacion ¿Que tener en cuenta? - Conceptos -

    Arquitectura - Implementación (Introspeccion) - Es algo que y conocemos. Fuertemente tipiado y todo es un Objeto, json
  25. 25 Java: ¿Que tener en cuenta?

  26. 26 Equema (Scheme)

  27. 27 Consultas (QUERY)

  28. 28 MUTACIONES:

  29. 29 GraphiQL (Grafical) Es la herramienta de consultas en tiempo

    real del desarrollador cliente.
  30. 30 Implementacion a GranEscala

  31. 31 Implementacion a GranEscala

  32. 32 CLIENTES

  33. 33 Clientes WEB

  34. 34 Clientes :

  35. 35 SEGURIDAD Al ser una especificación se puede aplicar la

    seguridad de cada plataforma, y en el servidor que se esté ejecutando, también: - vía programación (mutator) - SSL / VPN - via keyCloACK - Apache Shiro - Oauth
  36. 36 Páginas para probar/trastear, test. • https://github.com/APIs-guru/graphql-apis • https://docs.github.com/en/graphql •

    https://gitlab.com/-/graphql-explorer
  37. 37 Comentarios Finales ¿Es la solución definitiva? PRO Y CONTRAS

    Nueva solucion, Nuevos problemas. Restricciones - migración - legacy Opciones: - reuso: > API REST con HyperMedia. !
  38. 38 http://graphql.org/swapi-graphql/

  39. 39 Muchas Gracias, ¿Preguntas? @berroteranLKF