SlideShare una empresa de Scribd logo
1 de 27
Nico Milcoff
CTO @ XABLU / Microsoft MVP
GraphQL en .NET
Agenda
■ GraphQL: Por qué existe
■ Conceptos fundamentales
■ GraphQL en .NET
■ Demo!
Motivación
https://facebook.com/user/id
https://facebook.com/histories
https://facebook.com/posts
https://facebook.com/notifications
…
“A query language
for APIs and a
runtime for fulfilling
those queries with
existing data”
Consumidor
API +
GraphQL
engine
Query
Data (JSON)
Cómo funciona
GitHub API +
Aliases
el campo será “description”
en el resultado
Aliases para múltiples consultas
Fragments
Named queries
En GraphQL, el
consumidor es quien
define la estructura
de datos a recibir
Operaciones
Query Mutation Subscription
a read-only fetch a write followed by
a fetch
a long-lived request that
fetches data when an
event occurs
GraphQL vs REST
REST
Múltiples
controladores
Modelos Entidades
GET
POST
PUT
DELETE
GraphQL
Middleware Schema Entidad
GET
POST
Un solo endpoint
Más características de GraphQL
■ No está atado a HTTP
■ Énfasis en eficiencia de consultas
■ Esquema navegable
■ Evolución sin versionado
■ Compatible con REST
Nested queries
pueden causar
problemas de
performance
!
GraphQL en el servidor
https://github.com/graphql-dotnet/graphql-dotnet
https://github.com/ChilliCream/hotchocolate
GraphQL en el cliente
Progress is teamwork
WebApiClient
https://github.com/Xablu/Xablu.WebApiClient/
DEMO!
Siguientes pasos
■ Variables
■ Directives (conditions)
■ (Custom) validation rules
■ Mutations
■ Subscriptions
Muchas gracias! 
Nico Milcoff
@nmilcoff
nicolasmilcoff@gmail.com

Más contenido relacionado

Similar a GraphQL en .NET

Html5, Rest, JSON, Angular JS y Java EE 7 - Aplicaciones Web Modernas y Esca...
Html5, Rest, JSON, Angular JS y Java EE 7  - Aplicaciones Web Modernas y Esca...Html5, Rest, JSON, Angular JS y Java EE 7  - Aplicaciones Web Modernas y Esca...
Html5, Rest, JSON, Angular JS y Java EE 7 - Aplicaciones Web Modernas y Esca...Eudris Cabrera
 
API WEB SQL ITParral
API WEB SQL ITParralAPI WEB SQL ITParral
API WEB SQL ITParralFerny Cortez
 
Desarrollo de Aplicaciones Web con ASP.NET MVC5
Desarrollo de Aplicaciones Web con ASP.NET MVC5Desarrollo de Aplicaciones Web con ASP.NET MVC5
Desarrollo de Aplicaciones Web con ASP.NET MVC5Oscar Gensollen
 
Grails presentation1
Grails presentation1Grails presentation1
Grails presentation1chelen2002
 
Frameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsFrameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsEsteban Saavedra
 
[ES] Introducción a Java EE 7 & HTML 5
[ES] Introducción a Java EE 7 & HTML 5[ES] Introducción a Java EE 7 & HTML 5
[ES] Introducción a Java EE 7 & HTML 5Eudris Cabrera
 
Presentación Taller Herramientas Rendimiento DB2 en IBM i y Genexus
Presentación Taller Herramientas Rendimiento DB2 en IBM i y GenexusPresentación Taller Herramientas Rendimiento DB2 en IBM i y Genexus
Presentación Taller Herramientas Rendimiento DB2 en IBM i y GenexusXavier Espinoza
 
HTML Tour - Construyendo tu ecosistema de desarrollo Web
HTML Tour - Construyendo tu ecosistema de desarrollo WebHTML Tour - Construyendo tu ecosistema de desarrollo Web
HTML Tour - Construyendo tu ecosistema de desarrollo WebPlain Concepts
 
Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?SolidQ
 
Taller básico Herramientas Rendimiento DB2 en iSeries
Taller básico Herramientas Rendimiento DB2 en iSeriesTaller básico Herramientas Rendimiento DB2 en iSeries
Taller básico Herramientas Rendimiento DB2 en iSeriesXavier Espinoza
 
Jobsket.com, Grails en un proyecto real
Jobsket.com, Grails en un proyecto realJobsket.com, Grails en un proyecto real
Jobsket.com, Grails en un proyecto realJobsket
 
App engine
App engineApp engine
App engineThirdWay
 

Similar a GraphQL en .NET (20)

Html5, Rest, JSON, Angular JS y Java EE 7 - Aplicaciones Web Modernas y Esca...
Html5, Rest, JSON, Angular JS y Java EE 7  - Aplicaciones Web Modernas y Esca...Html5, Rest, JSON, Angular JS y Java EE 7  - Aplicaciones Web Modernas y Esca...
Html5, Rest, JSON, Angular JS y Java EE 7 - Aplicaciones Web Modernas y Esca...
 
ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3
 
API WEB SQL ITParral
API WEB SQL ITParralAPI WEB SQL ITParral
API WEB SQL ITParral
 
Programando WebApps con APIs
Programando WebApps con APIsProgramando WebApps con APIs
Programando WebApps con APIs
 
Arquitectura
Arquitectura Arquitectura
Arquitectura
 
Desarrollo de Aplicaciones Web con ASP.NET MVC5
Desarrollo de Aplicaciones Web con ASP.NET MVC5Desarrollo de Aplicaciones Web con ASP.NET MVC5
Desarrollo de Aplicaciones Web con ASP.NET MVC5
 
Salesforce III developer day bbva innovation center Madrid by @almazanjl
Salesforce III developer day bbva innovation center Madrid by @almazanjlSalesforce III developer day bbva innovation center Madrid by @almazanjl
Salesforce III developer day bbva innovation center Madrid by @almazanjl
 
Grails presentation1
Grails presentation1Grails presentation1
Grails presentation1
 
Frameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsFrameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web Grails
 
[ES] Introducción a Java EE 7 & HTML 5
[ES] Introducción a Java EE 7 & HTML 5[ES] Introducción a Java EE 7 & HTML 5
[ES] Introducción a Java EE 7 & HTML 5
 
4 Jhs J Developer Adf
4  Jhs J Developer Adf4  Jhs J Developer Adf
4 Jhs J Developer Adf
 
Presentación Taller Herramientas Rendimiento DB2 en IBM i y Genexus
Presentación Taller Herramientas Rendimiento DB2 en IBM i y GenexusPresentación Taller Herramientas Rendimiento DB2 en IBM i y Genexus
Presentación Taller Herramientas Rendimiento DB2 en IBM i y Genexus
 
Presentacion mvc orm
Presentacion mvc ormPresentacion mvc orm
Presentacion mvc orm
 
HTML Tour - Construyendo tu ecosistema de desarrollo Web
HTML Tour - Construyendo tu ecosistema de desarrollo WebHTML Tour - Construyendo tu ecosistema de desarrollo Web
HTML Tour - Construyendo tu ecosistema de desarrollo Web
 
Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?
 
Roadmap sap hana 2
Roadmap sap hana 2Roadmap sap hana 2
Roadmap sap hana 2
 
Taller básico Herramientas Rendimiento DB2 en iSeries
Taller básico Herramientas Rendimiento DB2 en iSeriesTaller básico Herramientas Rendimiento DB2 en iSeries
Taller básico Herramientas Rendimiento DB2 en iSeries
 
Jobsket.com, Grails en un proyecto real
Jobsket.com, Grails en un proyecto realJobsket.com, Grails en un proyecto real
Jobsket.com, Grails en un proyecto real
 
Simplemente REST
Simplemente RESTSimplemente REST
Simplemente REST
 
App engine
App engineApp engine
App engine
 

Más de Nicolas Milcoff

Mobile security recipes for xamarin
Mobile security recipes for xamarinMobile security recipes for xamarin
Mobile security recipes for xamarinNicolas Milcoff
 
Mobile dev ops demystified
Mobile dev ops demystifiedMobile dev ops demystified
Mobile dev ops demystifiedNicolas Milcoff
 
Visual Studio App Center: Nuestro centro de operaciones
Visual Studio App Center: Nuestro centro de operacionesVisual Studio App Center: Nuestro centro de operaciones
Visual Studio App Center: Nuestro centro de operacionesNicolas Milcoff
 
Desarrolla tu próxima app con Xamarin & MvvmCross
Desarrolla tu próxima app con Xamarin & MvvmCrossDesarrolla tu próxima app con Xamarin & MvvmCross
Desarrolla tu próxima app con Xamarin & MvvmCrossNicolas Milcoff
 
Guia de supervivencia mobile para el desarrollador .NET
Guia de supervivencia mobile para el desarrollador .NETGuia de supervivencia mobile para el desarrollador .NET
Guia de supervivencia mobile para el desarrollador .NETNicolas Milcoff
 
Build your next app with MvvmCross 6
Build your next app with MvvmCross 6Build your next app with MvvmCross 6
Build your next app with MvvmCross 6Nicolas Milcoff
 
Xamarin & MvvmCross in depth
Xamarin & MvvmCross in depthXamarin & MvvmCross in depth
Xamarin & MvvmCross in depthNicolas Milcoff
 
Tech Day Rosario 2017: Open Source for the win!
Tech Day Rosario 2017: Open Source for the win!Tech Day Rosario 2017: Open Source for the win!
Tech Day Rosario 2017: Open Source for the win!Nicolas Milcoff
 
Open Source for the win!
Open Source for the win!Open Source for the win!
Open Source for the win!Nicolas Milcoff
 
ViewPresenters in MvvmCross
ViewPresenters in MvvmCrossViewPresenters in MvvmCross
ViewPresenters in MvvmCrossNicolas Milcoff
 
Going pixel perfect with Xamarin and MvvmCross
Going pixel perfect with Xamarin and MvvmCrossGoing pixel perfect with Xamarin and MvvmCross
Going pixel perfect with Xamarin and MvvmCrossNicolas Milcoff
 

Más de Nicolas Milcoff (11)

Mobile security recipes for xamarin
Mobile security recipes for xamarinMobile security recipes for xamarin
Mobile security recipes for xamarin
 
Mobile dev ops demystified
Mobile dev ops demystifiedMobile dev ops demystified
Mobile dev ops demystified
 
Visual Studio App Center: Nuestro centro de operaciones
Visual Studio App Center: Nuestro centro de operacionesVisual Studio App Center: Nuestro centro de operaciones
Visual Studio App Center: Nuestro centro de operaciones
 
Desarrolla tu próxima app con Xamarin & MvvmCross
Desarrolla tu próxima app con Xamarin & MvvmCrossDesarrolla tu próxima app con Xamarin & MvvmCross
Desarrolla tu próxima app con Xamarin & MvvmCross
 
Guia de supervivencia mobile para el desarrollador .NET
Guia de supervivencia mobile para el desarrollador .NETGuia de supervivencia mobile para el desarrollador .NET
Guia de supervivencia mobile para el desarrollador .NET
 
Build your next app with MvvmCross 6
Build your next app with MvvmCross 6Build your next app with MvvmCross 6
Build your next app with MvvmCross 6
 
Xamarin & MvvmCross in depth
Xamarin & MvvmCross in depthXamarin & MvvmCross in depth
Xamarin & MvvmCross in depth
 
Tech Day Rosario 2017: Open Source for the win!
Tech Day Rosario 2017: Open Source for the win!Tech Day Rosario 2017: Open Source for the win!
Tech Day Rosario 2017: Open Source for the win!
 
Open Source for the win!
Open Source for the win!Open Source for the win!
Open Source for the win!
 
ViewPresenters in MvvmCross
ViewPresenters in MvvmCrossViewPresenters in MvvmCross
ViewPresenters in MvvmCross
 
Going pixel perfect with Xamarin and MvvmCross
Going pixel perfect with Xamarin and MvvmCrossGoing pixel perfect with Xamarin and MvvmCross
Going pixel perfect with Xamarin and MvvmCross
 

GraphQL en .NET

Notas del editor

  1. Inventado por Facebook en 2012 Especificación open source desde 2015 Muchos requests, algunos encadenados
  2. GraphiQL nos permite interactuar graficamente, creando queries y explorando el esquema en el browser. Tambien incluye “auto documentacion” Root types Query para read Mutation para escribir https://developer.github.com/v4/explorer/ Aliases (multiples queries)
  3. En REST seria necesario crear nuevos endpoints con resultados diferentes
  4. En REST seria necesario crear nuevos endpoints con resultados diferentes
  5. DATALOADER: Puede hacer un fetch y batch la info