SlideShare une entreprise Scribd logo
1  sur  75
GraphQL? REST API?
Or maybe you can have both!
Roy Mor
@RoyMorTech
GraphQL? REST API?
Or maybe you can have both!
Roy Mor
@RoyMorTech
Have your cake and eat it too?
Roy Mor
Tech Lead at Sisense
linkedin.com/in/roy-mor/
@RoyMorTech
Choosing an internal API paradigm
for your tech stack:
Schema describes the
shape and relationships
of the data
Client queries use the
types defined in the
schema
GraphQL API responses
are regular JSON – just
like REST responses
• Avoids under-fetching: single round trip (instead of multiple requests in REST)
• Avoids over-fetching: client specifies exactly the fields it needs
• Increased velocity for our development teams
• Once the schema is set – frontend and backend teams can work independently
• Clear communication, less meetings, schema is single-source-of-truth, changes are easy
• Better developer experience for front-end devs:
• No more post-processing on API responses
• ”Free” (built-in) validation and auto-documentation – due to GraphQL type system
• Better UI performance: reduced payloads and roundtrips
API as data query language
• Schema based
• Strongly typed
• Self documenting & built-in input validation
• Client centric: client specifies exactly what data it needs
• Better developer experience, faster development cycles
• Better performance: smaller payloads & fewer roundtrips
Got API?
O
GraphQL API!
…but the world still wants a REST API!
REST APIs
• The “de facto standard” for companies deploying APIs and developer platforms
• Proven for decades in large scale
• For user: simple to use, uniform interface, doesn’t require special libraries, common knowledge
• Leverages HTTP semantics, conventions and logic
O
(Yonatan Maman)
• We have an existing internal GraphQL API
• We need to expose an external REST API with the same functionality
Offer REST & GraphQL concurrently, running side by side
Problem Statement
1. Develop REST API manually from scratch?
2. Manually wrap GraphQL API with REST?
Our options
It’s just not cost-effective to develop, test and maintain two code
paths with the same functionality, and keep them in parity over time.
GraphQL2REST is a Node.js library that reads your GraphQL schema and
automatically generates an Express router with fully RESTful HTTP
routes —a full-fledged REST API.
• Creates REST endpoints based on GraphQL schema and a manifest file that you edit
• Full customization: your REST API could be very different than your GraphQL layer
github.com/sisense/graphql2rest
graphql2rest on npm
We open sourced it:
We automatically generated a truly RESTful API
without writing a single line of API code
Pre processing step: generateGqlQueryFiles()
• One-time only step; can be run at “build time”, or by script
”Fully exploded” GraphQL
client queries – saved as files
ç
Manifest describes all REST
endpoints, customizations
and mapping to GraphQL
operations
ç
At Runtime:
At Runtime:
At Runtime:
At Runtime:
At Runtime:
At Runtime:
At Runtime:
200 OKAt Runtime:
GraphQL2REST: manifest.json
• Describes all REST endpoints and mapping rules to GraphQL operations
In REST HTTP: GET /tweets/1234 (200 OK)
GraphQL: getTweetById(id: 1234)
GraphQL2REST: manifest.json
• Describes all REST endpoints and mapping rules to GraphQL operations
In REST HTTP: GET /tweets/1234 (200 OK)
 HTTP route path
 HTTP method
GraphQL: getTweetById(id: 1234)
 GraphQL operation to map to
GraphQL2REST: manifest.json
 GraphQL operation name
 Rename parameters
 Customize status code
 Allow flat REST request body
 Omit fields from REST response
PATCH /users/1234 | body = {"name": "Joe", "birthday": "1990-1-15"}
202 Accepted
Mutation updateUserData(userOid: UUID!, newData: userDataInput!): User
Exposes two public functions:
• generateGqlQueryFiles() - schema pre-processing
• init() - generate Express router at runtime
Demo Time!
End Demo
GraphQL2REST
o Works with any type of GraphQL server (local, remote, apollo-link, fetch….)
o Customize (almost) everything
o Response format
o Error format
o Status codes (for errors too)
o Parameter names and mappings
o Map a single REST endpoint to multiple GraphQL operations
o Hide fields
o Built-in filter for client
o And more….
We automatically generated a truly RESTful API
without writing a single line of API code
Should you choose GraphQL or REST
for your public API?
Why choose GraphQL for your INTERNAL API?
• Increased velocity for development teams
• Once the schema is set – frontend and backend teams can work independently
• Clear communication, less meetings, schema is single-source-of-truth, changes are easy
• Better developer experience for front-end devs:
• No more post-processing on API responses
• ”Free” (built-in) validation and auto-documentation
• Better UI performance: reduced payloads and roundtrips, easier for multi-client
Why not GraphQL?
• Doesn’t shine in ALL use cases
• Caching is not straightforward (HTTP POST) – requires extra libraries
• Error handling – errors are ambiguous (compare to REST)
• File upload is not straightforward
• Solution: base64? Extra libraries?
• Security: exposed to DOS attacks because the client has the control
• Solution: maximal query nesting level, timeouts, rate limits… needs configuration
• Schema is public, so no “internal”, “hidden”, “private” endpoints for sensitive queries
• No conventions like in REST – it’s on US to implement or use extra libraries
Everything has a proper solution! Just not out-of-the-box
There’s a strong case for using GraphQL as an internal API.
Is the world ready for GraphQL Public APIs?
(what is the difference anyway…)
GraphQL Public APIs
GraphQL Public APIs
Effects of going for GraphQL Public API
• “Since our application engineers are using the same GraphQL
platform that we’re making available to our integrators, this provides
us with the opportunity to ship UI features in conjunction
with API access.
Using GraphQL on the frontend and backend eliminates the gap
between what we release and what you can consume.” –
GitHub
Possible Issues with Public GraphQL API
“GraphQL is client-centric, not server-driven”:
• GraphQL moves too much of the burden to the user of the API
• “Query building is tedious”, “frustration”, “unnecessarily complex compared to good ol’ REST”
• Large learning curve for teams/people who might not be interested in using GraphQL
• The internal team would have a vested interest in introspecting the API but an external
developer might not.
• Top client-side performance requires using external libraries
• Is this an error or not? ”Lost exceptions”, partial errors, monitoring becomes not
straightforward
• Using REST = familiar framework = minimize ”business risk” (De-risking)
Public APIs: GraphQL vs REST – any conclusion?
• GraphQL is a great technology, but not a silver bullet
• Good tech reasons to choose GraphQL, but also other considerations:
• Market penetration
• Public API user preferences, habits, needs, skills
• Take a leap of faith like GitHub?
• Gather information, survery our customers / developers?
We automatically generated a truly RESTful API
without writing a single line of API code
github.com/sisense/graphql2rest
npm: graphql2rest
Roy Mor
roy.mor@sisense.com
linkedin.com/in/roy-mor/
RoyMorTech
Thank You!
Roy Mor (roy.mor@sisense.com)
Thank You!
Q&A
Roy Mor (roy.mor@sisense.com)
https://www.linkedin.com/in/roy-mor/
https://github.com/sisense

Contenu connexe

Tendances

GraphQL: The Missing Link Between Frontend and Backend Devs
GraphQL: The Missing Link Between Frontend and Backend DevsGraphQL: The Missing Link Between Frontend and Backend Devs
GraphQL: The Missing Link Between Frontend and Backend DevsSashko Stubailo
 
API Centric Development in PHP
API Centric Development in PHPAPI Centric Development in PHP
API Centric Development in PHPJoe Stagner
 
WSO2 Product Release Webinar - WSO2 App Factory 2.1
WSO2 Product Release Webinar - WSO2 App Factory 2.1WSO2 Product Release Webinar - WSO2 App Factory 2.1
WSO2 Product Release Webinar - WSO2 App Factory 2.1WSO2
 
apidays LIVE Paris - Augmenting a Legacy REST API with GraphQL by Clément Vil...
apidays LIVE Paris - Augmenting a Legacy REST API with GraphQL by Clément Vil...apidays LIVE Paris - Augmenting a Legacy REST API with GraphQL by Clément Vil...
apidays LIVE Paris - Augmenting a Legacy REST API with GraphQL by Clément Vil...apidays
 
Tools for designing and building great APIs
Tools for designing and building great APIsTools for designing and building great APIs
Tools for designing and building great APIsKong Inc.
 
Scaling Your Team With GraphQL: Why Relationships Matter
Scaling Your Team With GraphQL: Why Relationships MatterScaling Your Team With GraphQL: Why Relationships Matter
Scaling Your Team With GraphQL: Why Relationships MatterJoel Bowen
 
Why your APIs should fly first class
Why your APIs should fly first classWhy your APIs should fly first class
Why your APIs should fly first classLibbySchulze
 
Running the-next-generation-of-cloud-native-applications-using-open-applicati...
Running the-next-generation-of-cloud-native-applications-using-open-applicati...Running the-next-generation-of-cloud-native-applications-using-open-applicati...
Running the-next-generation-of-cloud-native-applications-using-open-applicati...NaveedAhmad239
 
REST vs. GraphQL: Critical Look
REST vs. GraphQL: Critical LookREST vs. GraphQL: Critical Look
REST vs. GraphQL: Critical LookNordic APIs
 
APIdays Helsinki 2019 - The Future of the Dynamic Application Server, NGINX U...
APIdays Helsinki 2019 - The Future of the Dynamic Application Server, NGINX U...APIdays Helsinki 2019 - The Future of the Dynamic Application Server, NGINX U...
APIdays Helsinki 2019 - The Future of the Dynamic Application Server, NGINX U...apidays
 
apidays LIVE Paris - The Rise of GraphQL for database APIs by Karthic Rao
apidays LIVE Paris - The Rise of GraphQL for database APIs by Karthic Raoapidays LIVE Paris - The Rise of GraphQL for database APIs by Karthic Rao
apidays LIVE Paris - The Rise of GraphQL for database APIs by Karthic Raoapidays
 
Itb 2021 - Bulding Quick APIs by Gavin Pickin
Itb 2021 - Bulding Quick APIs by Gavin PickinItb 2021 - Bulding Quick APIs by Gavin Pickin
Itb 2021 - Bulding Quick APIs by Gavin PickinGavin Pickin
 
Introduction to GraphQL
Introduction to GraphQLIntroduction to GraphQL
Introduction to GraphQLKnoldus Inc.
 
apidays LIVE Paris - GraphQL: the AppSec perspective by Vladimir de Turckheim
apidays LIVE Paris - GraphQL: the AppSec perspective by Vladimir de Turckheimapidays LIVE Paris - GraphQL: the AppSec perspective by Vladimir de Turckheim
apidays LIVE Paris - GraphQL: the AppSec perspective by Vladimir de Turckheimapidays
 
INTERFACE by apidays_Vulcain: beat GraphQL with HTTP/2+ by Kevin Dunglas
INTERFACE by apidays_Vulcain: beat GraphQL with HTTP/2+ by Kevin DunglasINTERFACE by apidays_Vulcain: beat GraphQL with HTTP/2+ by Kevin Dunglas
INTERFACE by apidays_Vulcain: beat GraphQL with HTTP/2+ by Kevin Dunglasapidays
 
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...apidays
 
A Hitchhiker's Guide to Cloud-Native API Gateways
A Hitchhiker's Guide to Cloud-Native API GatewaysA Hitchhiker's Guide to Cloud-Native API Gateways
A Hitchhiker's Guide to Cloud-Native API GatewaysQAware GmbH
 
Continuous Integration and Delivery at Shapeways (Matt Boyle)
Continuous Integration and Delivery at Shapeways (Matt Boyle)Continuous Integration and Delivery at Shapeways (Matt Boyle)
Continuous Integration and Delivery at Shapeways (Matt Boyle)Nordic APIs
 
OpenAPI Spec at Google (Open API Initiative Meetup on 2016-09-15)
OpenAPI Spec at Google (Open API Initiative Meetup on 2016-09-15)OpenAPI Spec at Google (Open API Initiative Meetup on 2016-09-15)
OpenAPI Spec at Google (Open API Initiative Meetup on 2016-09-15)Open API Initiative (OAI)
 
Into to GraphQL
Into to GraphQLInto to GraphQL
Into to GraphQLshobot
 

Tendances (20)

GraphQL: The Missing Link Between Frontend and Backend Devs
GraphQL: The Missing Link Between Frontend and Backend DevsGraphQL: The Missing Link Between Frontend and Backend Devs
GraphQL: The Missing Link Between Frontend and Backend Devs
 
API Centric Development in PHP
API Centric Development in PHPAPI Centric Development in PHP
API Centric Development in PHP
 
WSO2 Product Release Webinar - WSO2 App Factory 2.1
WSO2 Product Release Webinar - WSO2 App Factory 2.1WSO2 Product Release Webinar - WSO2 App Factory 2.1
WSO2 Product Release Webinar - WSO2 App Factory 2.1
 
apidays LIVE Paris - Augmenting a Legacy REST API with GraphQL by Clément Vil...
apidays LIVE Paris - Augmenting a Legacy REST API with GraphQL by Clément Vil...apidays LIVE Paris - Augmenting a Legacy REST API with GraphQL by Clément Vil...
apidays LIVE Paris - Augmenting a Legacy REST API with GraphQL by Clément Vil...
 
Tools for designing and building great APIs
Tools for designing and building great APIsTools for designing and building great APIs
Tools for designing and building great APIs
 
Scaling Your Team With GraphQL: Why Relationships Matter
Scaling Your Team With GraphQL: Why Relationships MatterScaling Your Team With GraphQL: Why Relationships Matter
Scaling Your Team With GraphQL: Why Relationships Matter
 
Why your APIs should fly first class
Why your APIs should fly first classWhy your APIs should fly first class
Why your APIs should fly first class
 
Running the-next-generation-of-cloud-native-applications-using-open-applicati...
Running the-next-generation-of-cloud-native-applications-using-open-applicati...Running the-next-generation-of-cloud-native-applications-using-open-applicati...
Running the-next-generation-of-cloud-native-applications-using-open-applicati...
 
REST vs. GraphQL: Critical Look
REST vs. GraphQL: Critical LookREST vs. GraphQL: Critical Look
REST vs. GraphQL: Critical Look
 
APIdays Helsinki 2019 - The Future of the Dynamic Application Server, NGINX U...
APIdays Helsinki 2019 - The Future of the Dynamic Application Server, NGINX U...APIdays Helsinki 2019 - The Future of the Dynamic Application Server, NGINX U...
APIdays Helsinki 2019 - The Future of the Dynamic Application Server, NGINX U...
 
apidays LIVE Paris - The Rise of GraphQL for database APIs by Karthic Rao
apidays LIVE Paris - The Rise of GraphQL for database APIs by Karthic Raoapidays LIVE Paris - The Rise of GraphQL for database APIs by Karthic Rao
apidays LIVE Paris - The Rise of GraphQL for database APIs by Karthic Rao
 
Itb 2021 - Bulding Quick APIs by Gavin Pickin
Itb 2021 - Bulding Quick APIs by Gavin PickinItb 2021 - Bulding Quick APIs by Gavin Pickin
Itb 2021 - Bulding Quick APIs by Gavin Pickin
 
Introduction to GraphQL
Introduction to GraphQLIntroduction to GraphQL
Introduction to GraphQL
 
apidays LIVE Paris - GraphQL: the AppSec perspective by Vladimir de Turckheim
apidays LIVE Paris - GraphQL: the AppSec perspective by Vladimir de Turckheimapidays LIVE Paris - GraphQL: the AppSec perspective by Vladimir de Turckheim
apidays LIVE Paris - GraphQL: the AppSec perspective by Vladimir de Turckheim
 
INTERFACE by apidays_Vulcain: beat GraphQL with HTTP/2+ by Kevin Dunglas
INTERFACE by apidays_Vulcain: beat GraphQL with HTTP/2+ by Kevin DunglasINTERFACE by apidays_Vulcain: beat GraphQL with HTTP/2+ by Kevin Dunglas
INTERFACE by apidays_Vulcain: beat GraphQL with HTTP/2+ by Kevin Dunglas
 
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
 
A Hitchhiker's Guide to Cloud-Native API Gateways
A Hitchhiker's Guide to Cloud-Native API GatewaysA Hitchhiker's Guide to Cloud-Native API Gateways
A Hitchhiker's Guide to Cloud-Native API Gateways
 
Continuous Integration and Delivery at Shapeways (Matt Boyle)
Continuous Integration and Delivery at Shapeways (Matt Boyle)Continuous Integration and Delivery at Shapeways (Matt Boyle)
Continuous Integration and Delivery at Shapeways (Matt Boyle)
 
OpenAPI Spec at Google (Open API Initiative Meetup on 2016-09-15)
OpenAPI Spec at Google (Open API Initiative Meetup on 2016-09-15)OpenAPI Spec at Google (Open API Initiative Meetup on 2016-09-15)
OpenAPI Spec at Google (Open API Initiative Meetup on 2016-09-15)
 
Into to GraphQL
Into to GraphQLInto to GraphQL
Into to GraphQL
 

Similaire à apidays LIVE Australia - Have your cake and eat it too: GraphQL? REST? Why not have both! by Roy Mor

Implementing OpenAPI and GraphQL services with gRPC
Implementing OpenAPI and GraphQL services with gRPCImplementing OpenAPI and GraphQL services with gRPC
Implementing OpenAPI and GraphQL services with gRPCTim Burks
 
Graphql presentation
Graphql presentationGraphql presentation
Graphql presentationVibhor Grover
 
GraphQL across the stack: How everything fits together
GraphQL across the stack: How everything fits togetherGraphQL across the stack: How everything fits together
GraphQL across the stack: How everything fits togetherSashko Stubailo
 
Adding GraphQL to your existing architecture
Adding GraphQL to your existing architectureAdding GraphQL to your existing architecture
Adding GraphQL to your existing architectureSashko Stubailo
 
Choisir entre une API RPC, SOAP, REST, GraphQL? 
Et si le problème était ai...
Choisir entre une API  RPC, SOAP, REST, GraphQL?  
Et si le problème était ai...Choisir entre une API  RPC, SOAP, REST, GraphQL?  
Et si le problème était ai...
Choisir entre une API RPC, SOAP, REST, GraphQL? 
Et si le problème était ai...François-Guillaume Ribreau
 
How easy (or hard) it is to monitor your graph ql service performance
How easy (or hard) it is to monitor your graph ql service performanceHow easy (or hard) it is to monitor your graph ql service performance
How easy (or hard) it is to monitor your graph ql service performanceLuca Mattia Ferrari
 
Sashko Stubailo - The GraphQL and Apollo Stack: connecting everything together
Sashko Stubailo - The GraphQL and Apollo Stack: connecting everything togetherSashko Stubailo - The GraphQL and Apollo Stack: connecting everything together
Sashko Stubailo - The GraphQL and Apollo Stack: connecting everything togetherReact Conf Brasil
 
The Apollo and GraphQL Stack
The Apollo and GraphQL StackThe Apollo and GraphQL Stack
The Apollo and GraphQL StackSashko Stubailo
 
CONDG April 23 2020 - Baskar Rao - GraphQL
CONDG April 23 2020 - Baskar Rao - GraphQLCONDG April 23 2020 - Baskar Rao - GraphQL
CONDG April 23 2020 - Baskar Rao - GraphQLMatthew Groves
 
Serverless GraphQL for Product Developers
Serverless GraphQL for Product DevelopersServerless GraphQL for Product Developers
Serverless GraphQL for Product DevelopersSashko Stubailo
 
API workshop: Introduction to APIs (TC Camp)
API workshop: Introduction to APIs (TC Camp)API workshop: Introduction to APIs (TC Camp)
API workshop: Introduction to APIs (TC Camp)Tom Johnson
 
GraphQL over REST at Reactathon 2018
GraphQL over REST at Reactathon 2018GraphQL over REST at Reactathon 2018
GraphQL over REST at Reactathon 2018Sashko Stubailo
 
API Management for GraphQL
API Management for GraphQLAPI Management for GraphQL
API Management for GraphQLWSO2
 
Create GraphQL server with apolloJS
Create GraphQL server with apolloJSCreate GraphQL server with apolloJS
Create GraphQL server with apolloJSJonathan Jalouzot
 
API workshop by AWS and 3scale
API workshop by AWS and 3scaleAPI workshop by AWS and 3scale
API workshop by AWS and 3scale3scale
 
GraphQL: Enabling a new generation of API developer tools
GraphQL: Enabling a new generation of API developer toolsGraphQL: Enabling a new generation of API developer tools
GraphQL: Enabling a new generation of API developer toolsSashko Stubailo
 

Similaire à apidays LIVE Australia - Have your cake and eat it too: GraphQL? REST? Why not have both! by Roy Mor (20)

Implementing OpenAPI and GraphQL services with gRPC
Implementing OpenAPI and GraphQL services with gRPCImplementing OpenAPI and GraphQL services with gRPC
Implementing OpenAPI and GraphQL services with gRPC
 
Graphql presentation
Graphql presentationGraphql presentation
Graphql presentation
 
GraphQL across the stack: How everything fits together
GraphQL across the stack: How everything fits togetherGraphQL across the stack: How everything fits together
GraphQL across the stack: How everything fits together
 
Adding GraphQL to your existing architecture
Adding GraphQL to your existing architectureAdding GraphQL to your existing architecture
Adding GraphQL to your existing architecture
 
GraphQL.net
GraphQL.netGraphQL.net
GraphQL.net
 
Choisir entre une API RPC, SOAP, REST, GraphQL? 
Et si le problème était ai...
Choisir entre une API  RPC, SOAP, REST, GraphQL?  
Et si le problème était ai...Choisir entre une API  RPC, SOAP, REST, GraphQL?  
Et si le problème était ai...
Choisir entre une API RPC, SOAP, REST, GraphQL? 
Et si le problème était ai...
 
How easy (or hard) it is to monitor your graph ql service performance
How easy (or hard) it is to monitor your graph ql service performanceHow easy (or hard) it is to monitor your graph ql service performance
How easy (or hard) it is to monitor your graph ql service performance
 
Sashko Stubailo - The GraphQL and Apollo Stack: connecting everything together
Sashko Stubailo - The GraphQL and Apollo Stack: connecting everything togetherSashko Stubailo - The GraphQL and Apollo Stack: connecting everything together
Sashko Stubailo - The GraphQL and Apollo Stack: connecting everything together
 
The Apollo and GraphQL Stack
The Apollo and GraphQL StackThe Apollo and GraphQL Stack
The Apollo and GraphQL Stack
 
CONDG April 23 2020 - Baskar Rao - GraphQL
CONDG April 23 2020 - Baskar Rao - GraphQLCONDG April 23 2020 - Baskar Rao - GraphQL
CONDG April 23 2020 - Baskar Rao - GraphQL
 
Graphql usage
Graphql usageGraphql usage
Graphql usage
 
Serverless GraphQL for Product Developers
Serverless GraphQL for Product DevelopersServerless GraphQL for Product Developers
Serverless GraphQL for Product Developers
 
API workshop: Introduction to APIs (TC Camp)
API workshop: Introduction to APIs (TC Camp)API workshop: Introduction to APIs (TC Camp)
API workshop: Introduction to APIs (TC Camp)
 
GraphQL over REST at Reactathon 2018
GraphQL over REST at Reactathon 2018GraphQL over REST at Reactathon 2018
GraphQL over REST at Reactathon 2018
 
API Management for GraphQL
API Management for GraphQLAPI Management for GraphQL
API Management for GraphQL
 
Create GraphQL server with apolloJS
Create GraphQL server with apolloJSCreate GraphQL server with apolloJS
Create GraphQL server with apolloJS
 
API workshop by AWS and 3scale
API workshop by AWS and 3scaleAPI workshop by AWS and 3scale
API workshop by AWS and 3scale
 
GraphQL Europe Recap
GraphQL Europe RecapGraphQL Europe Recap
GraphQL Europe Recap
 
Hands On - GraphQL
Hands On - GraphQLHands On - GraphQL
Hands On - GraphQL
 
GraphQL: Enabling a new generation of API developer tools
GraphQL: Enabling a new generation of API developer toolsGraphQL: Enabling a new generation of API developer tools
GraphQL: Enabling a new generation of API developer tools
 

Plus de apidays

Apidays Singapore 2024 - Connecting Cross Border Commerce with Payments by Gu...
Apidays Singapore 2024 - Connecting Cross Border Commerce with Payments by Gu...Apidays Singapore 2024 - Connecting Cross Border Commerce with Payments by Gu...
Apidays Singapore 2024 - Connecting Cross Border Commerce with Payments by Gu...apidays
 
Apidays Singapore 2024 - Privacy Enhancing Technologies for AI by Mark Choo, ...
Apidays Singapore 2024 - Privacy Enhancing Technologies for AI by Mark Choo, ...Apidays Singapore 2024 - Privacy Enhancing Technologies for AI by Mark Choo, ...
Apidays Singapore 2024 - Privacy Enhancing Technologies for AI by Mark Choo, ...apidays
 
Apidays Singapore 2024 - Blending AI and IoT for Smarter Health by Matthew Ch...
Apidays Singapore 2024 - Blending AI and IoT for Smarter Health by Matthew Ch...Apidays Singapore 2024 - Blending AI and IoT for Smarter Health by Matthew Ch...
Apidays Singapore 2024 - Blending AI and IoT for Smarter Health by Matthew Ch...apidays
 
Apidays Singapore 2024 - OpenTelemetry for API Monitoring by Danielle Kayumbi...
Apidays Singapore 2024 - OpenTelemetry for API Monitoring by Danielle Kayumbi...Apidays Singapore 2024 - OpenTelemetry for API Monitoring by Danielle Kayumbi...
Apidays Singapore 2024 - OpenTelemetry for API Monitoring by Danielle Kayumbi...apidays
 
Apidays Singapore 2024 - Connecting Product and Engineering Teams with Testin...
Apidays Singapore 2024 - Connecting Product and Engineering Teams with Testin...Apidays Singapore 2024 - Connecting Product and Engineering Teams with Testin...
Apidays Singapore 2024 - Connecting Product and Engineering Teams with Testin...apidays
 
Apidays Singapore 2024 - The Growing Carbon Footprint of Digitalization and H...
Apidays Singapore 2024 - The Growing Carbon Footprint of Digitalization and H...Apidays Singapore 2024 - The Growing Carbon Footprint of Digitalization and H...
Apidays Singapore 2024 - The Growing Carbon Footprint of Digitalization and H...apidays
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Apidays Singapore 2024 - API Monitoring x SRE by Ryan Ashneil and Eugene Wong...
Apidays Singapore 2024 - API Monitoring x SRE by Ryan Ashneil and Eugene Wong...Apidays Singapore 2024 - API Monitoring x SRE by Ryan Ashneil and Eugene Wong...
Apidays Singapore 2024 - API Monitoring x SRE by Ryan Ashneil and Eugene Wong...apidays
 
Apidays Singapore 2024 - A nuanced approach on AI costs and benefits for the ...
Apidays Singapore 2024 - A nuanced approach on AI costs and benefits for the ...Apidays Singapore 2024 - A nuanced approach on AI costs and benefits for the ...
Apidays Singapore 2024 - A nuanced approach on AI costs and benefits for the ...apidays
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
Apidays Singapore 2024 - How APIs drive business at BNP Paribas by Quy-Doan D...
Apidays Singapore 2024 - How APIs drive business at BNP Paribas by Quy-Doan D...Apidays Singapore 2024 - How APIs drive business at BNP Paribas by Quy-Doan D...
Apidays Singapore 2024 - How APIs drive business at BNP Paribas by Quy-Doan D...apidays
 
Apidays Singapore 2024 - Harnessing Green IT by Jai Prakash and Timothée Dufr...
Apidays Singapore 2024 - Harnessing Green IT by Jai Prakash and Timothée Dufr...Apidays Singapore 2024 - Harnessing Green IT by Jai Prakash and Timothée Dufr...
Apidays Singapore 2024 - Harnessing Green IT by Jai Prakash and Timothée Dufr...apidays
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...apidays
 
Apidays Singapore 2024 - Creating API First Engineering Team by Asim Suvedi, ...
Apidays Singapore 2024 - Creating API First Engineering Team by Asim Suvedi, ...Apidays Singapore 2024 - Creating API First Engineering Team by Asim Suvedi, ...
Apidays Singapore 2024 - Creating API First Engineering Team by Asim Suvedi, ...apidays
 
Apidays Singapore 2024 - Designing a Scalable MLOps Pipeline by Victoria Lo, ...
Apidays Singapore 2024 - Designing a Scalable MLOps Pipeline by Victoria Lo, ...Apidays Singapore 2024 - Designing a Scalable MLOps Pipeline by Victoria Lo, ...
Apidays Singapore 2024 - Designing a Scalable MLOps Pipeline by Victoria Lo, ...apidays
 
Apidays Singapore 2024 - The 5 Key Tenets of a Multiform API Management Strat...
Apidays Singapore 2024 - The 5 Key Tenets of a Multiform API Management Strat...Apidays Singapore 2024 - The 5 Key Tenets of a Multiform API Management Strat...
Apidays Singapore 2024 - The 5 Key Tenets of a Multiform API Management Strat...apidays
 
Apidays Singapore 2024 - APIs in the world of Generative AI by Claudio Tag, IBM
Apidays Singapore 2024 - APIs in the world of Generative AI by Claudio Tag, IBMApidays Singapore 2024 - APIs in the world of Generative AI by Claudio Tag, IBM
Apidays Singapore 2024 - APIs in the world of Generative AI by Claudio Tag, IBMapidays
 
Apidays Singapore 2024 - Banking: From Obsolete to Absolute by Indra Salim, a...
Apidays Singapore 2024 - Banking: From Obsolete to Absolute by Indra Salim, a...Apidays Singapore 2024 - Banking: From Obsolete to Absolute by Indra Salim, a...
Apidays Singapore 2024 - Banking: From Obsolete to Absolute by Indra Salim, a...apidays
 
Apidays Singapore 2024 - Application and Platform Optimization through Power ...
Apidays Singapore 2024 - Application and Platform Optimization through Power ...Apidays Singapore 2024 - Application and Platform Optimization through Power ...
Apidays Singapore 2024 - Application and Platform Optimization through Power ...apidays
 
Apidays Singapore 2024 - Shift RIGHT to Better Product Resilience by Abhijit ...
Apidays Singapore 2024 - Shift RIGHT to Better Product Resilience by Abhijit ...Apidays Singapore 2024 - Shift RIGHT to Better Product Resilience by Abhijit ...
Apidays Singapore 2024 - Shift RIGHT to Better Product Resilience by Abhijit ...apidays
 

Plus de apidays (20)

Apidays Singapore 2024 - Connecting Cross Border Commerce with Payments by Gu...
Apidays Singapore 2024 - Connecting Cross Border Commerce with Payments by Gu...Apidays Singapore 2024 - Connecting Cross Border Commerce with Payments by Gu...
Apidays Singapore 2024 - Connecting Cross Border Commerce with Payments by Gu...
 
Apidays Singapore 2024 - Privacy Enhancing Technologies for AI by Mark Choo, ...
Apidays Singapore 2024 - Privacy Enhancing Technologies for AI by Mark Choo, ...Apidays Singapore 2024 - Privacy Enhancing Technologies for AI by Mark Choo, ...
Apidays Singapore 2024 - Privacy Enhancing Technologies for AI by Mark Choo, ...
 
Apidays Singapore 2024 - Blending AI and IoT for Smarter Health by Matthew Ch...
Apidays Singapore 2024 - Blending AI and IoT for Smarter Health by Matthew Ch...Apidays Singapore 2024 - Blending AI and IoT for Smarter Health by Matthew Ch...
Apidays Singapore 2024 - Blending AI and IoT for Smarter Health by Matthew Ch...
 
Apidays Singapore 2024 - OpenTelemetry for API Monitoring by Danielle Kayumbi...
Apidays Singapore 2024 - OpenTelemetry for API Monitoring by Danielle Kayumbi...Apidays Singapore 2024 - OpenTelemetry for API Monitoring by Danielle Kayumbi...
Apidays Singapore 2024 - OpenTelemetry for API Monitoring by Danielle Kayumbi...
 
Apidays Singapore 2024 - Connecting Product and Engineering Teams with Testin...
Apidays Singapore 2024 - Connecting Product and Engineering Teams with Testin...Apidays Singapore 2024 - Connecting Product and Engineering Teams with Testin...
Apidays Singapore 2024 - Connecting Product and Engineering Teams with Testin...
 
Apidays Singapore 2024 - The Growing Carbon Footprint of Digitalization and H...
Apidays Singapore 2024 - The Growing Carbon Footprint of Digitalization and H...Apidays Singapore 2024 - The Growing Carbon Footprint of Digitalization and H...
Apidays Singapore 2024 - The Growing Carbon Footprint of Digitalization and H...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Apidays Singapore 2024 - API Monitoring x SRE by Ryan Ashneil and Eugene Wong...
Apidays Singapore 2024 - API Monitoring x SRE by Ryan Ashneil and Eugene Wong...Apidays Singapore 2024 - API Monitoring x SRE by Ryan Ashneil and Eugene Wong...
Apidays Singapore 2024 - API Monitoring x SRE by Ryan Ashneil and Eugene Wong...
 
Apidays Singapore 2024 - A nuanced approach on AI costs and benefits for the ...
Apidays Singapore 2024 - A nuanced approach on AI costs and benefits for the ...Apidays Singapore 2024 - A nuanced approach on AI costs and benefits for the ...
Apidays Singapore 2024 - A nuanced approach on AI costs and benefits for the ...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Apidays Singapore 2024 - How APIs drive business at BNP Paribas by Quy-Doan D...
Apidays Singapore 2024 - How APIs drive business at BNP Paribas by Quy-Doan D...Apidays Singapore 2024 - How APIs drive business at BNP Paribas by Quy-Doan D...
Apidays Singapore 2024 - How APIs drive business at BNP Paribas by Quy-Doan D...
 
Apidays Singapore 2024 - Harnessing Green IT by Jai Prakash and Timothée Dufr...
Apidays Singapore 2024 - Harnessing Green IT by Jai Prakash and Timothée Dufr...Apidays Singapore 2024 - Harnessing Green IT by Jai Prakash and Timothée Dufr...
Apidays Singapore 2024 - Harnessing Green IT by Jai Prakash and Timothée Dufr...
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Apidays Singapore 2024 - Creating API First Engineering Team by Asim Suvedi, ...
Apidays Singapore 2024 - Creating API First Engineering Team by Asim Suvedi, ...Apidays Singapore 2024 - Creating API First Engineering Team by Asim Suvedi, ...
Apidays Singapore 2024 - Creating API First Engineering Team by Asim Suvedi, ...
 
Apidays Singapore 2024 - Designing a Scalable MLOps Pipeline by Victoria Lo, ...
Apidays Singapore 2024 - Designing a Scalable MLOps Pipeline by Victoria Lo, ...Apidays Singapore 2024 - Designing a Scalable MLOps Pipeline by Victoria Lo, ...
Apidays Singapore 2024 - Designing a Scalable MLOps Pipeline by Victoria Lo, ...
 
Apidays Singapore 2024 - The 5 Key Tenets of a Multiform API Management Strat...
Apidays Singapore 2024 - The 5 Key Tenets of a Multiform API Management Strat...Apidays Singapore 2024 - The 5 Key Tenets of a Multiform API Management Strat...
Apidays Singapore 2024 - The 5 Key Tenets of a Multiform API Management Strat...
 
Apidays Singapore 2024 - APIs in the world of Generative AI by Claudio Tag, IBM
Apidays Singapore 2024 - APIs in the world of Generative AI by Claudio Tag, IBMApidays Singapore 2024 - APIs in the world of Generative AI by Claudio Tag, IBM
Apidays Singapore 2024 - APIs in the world of Generative AI by Claudio Tag, IBM
 
Apidays Singapore 2024 - Banking: From Obsolete to Absolute by Indra Salim, a...
Apidays Singapore 2024 - Banking: From Obsolete to Absolute by Indra Salim, a...Apidays Singapore 2024 - Banking: From Obsolete to Absolute by Indra Salim, a...
Apidays Singapore 2024 - Banking: From Obsolete to Absolute by Indra Salim, a...
 
Apidays Singapore 2024 - Application and Platform Optimization through Power ...
Apidays Singapore 2024 - Application and Platform Optimization through Power ...Apidays Singapore 2024 - Application and Platform Optimization through Power ...
Apidays Singapore 2024 - Application and Platform Optimization through Power ...
 
Apidays Singapore 2024 - Shift RIGHT to Better Product Resilience by Abhijit ...
Apidays Singapore 2024 - Shift RIGHT to Better Product Resilience by Abhijit ...Apidays Singapore 2024 - Shift RIGHT to Better Product Resilience by Abhijit ...
Apidays Singapore 2024 - Shift RIGHT to Better Product Resilience by Abhijit ...
 

Dernier

Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 

Dernier (20)

Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 

apidays LIVE Australia - Have your cake and eat it too: GraphQL? REST? Why not have both! by Roy Mor

  • 1. GraphQL? REST API? Or maybe you can have both! Roy Mor @RoyMorTech
  • 2.
  • 3. GraphQL? REST API? Or maybe you can have both! Roy Mor @RoyMorTech
  • 4. Have your cake and eat it too?
  • 5. Roy Mor Tech Lead at Sisense linkedin.com/in/roy-mor/ @RoyMorTech
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14. Choosing an internal API paradigm for your tech stack:
  • 15.
  • 16.
  • 17. Schema describes the shape and relationships of the data Client queries use the types defined in the schema GraphQL API responses are regular JSON – just like REST responses
  • 18. • Avoids under-fetching: single round trip (instead of multiple requests in REST) • Avoids over-fetching: client specifies exactly the fields it needs
  • 19. • Increased velocity for our development teams • Once the schema is set – frontend and backend teams can work independently • Clear communication, less meetings, schema is single-source-of-truth, changes are easy • Better developer experience for front-end devs: • No more post-processing on API responses • ”Free” (built-in) validation and auto-documentation – due to GraphQL type system • Better UI performance: reduced payloads and roundtrips
  • 20. API as data query language • Schema based • Strongly typed • Self documenting & built-in input validation • Client centric: client specifies exactly what data it needs • Better developer experience, faster development cycles • Better performance: smaller payloads & fewer roundtrips
  • 21.
  • 24. …but the world still wants a REST API!
  • 25.
  • 26. REST APIs • The “de facto standard” for companies deploying APIs and developer platforms • Proven for decades in large scale • For user: simple to use, uniform interface, doesn’t require special libraries, common knowledge • Leverages HTTP semantics, conventions and logic
  • 28. • We have an existing internal GraphQL API • We need to expose an external REST API with the same functionality Offer REST & GraphQL concurrently, running side by side Problem Statement
  • 29. 1. Develop REST API manually from scratch? 2. Manually wrap GraphQL API with REST? Our options It’s just not cost-effective to develop, test and maintain two code paths with the same functionality, and keep them in parity over time.
  • 30.
  • 31.
  • 32. GraphQL2REST is a Node.js library that reads your GraphQL schema and automatically generates an Express router with fully RESTful HTTP routes —a full-fledged REST API.
  • 33. • Creates REST endpoints based on GraphQL schema and a manifest file that you edit • Full customization: your REST API could be very different than your GraphQL layer
  • 35. We automatically generated a truly RESTful API without writing a single line of API code
  • 36.
  • 37.
  • 38. Pre processing step: generateGqlQueryFiles() • One-time only step; can be run at “build time”, or by script
  • 39.
  • 40. ”Fully exploded” GraphQL client queries – saved as files
  • 41.
  • 42. ç
  • 43. Manifest describes all REST endpoints, customizations and mapping to GraphQL operations ç
  • 44.
  • 53. GraphQL2REST: manifest.json • Describes all REST endpoints and mapping rules to GraphQL operations In REST HTTP: GET /tweets/1234 (200 OK) GraphQL: getTweetById(id: 1234)
  • 54. GraphQL2REST: manifest.json • Describes all REST endpoints and mapping rules to GraphQL operations In REST HTTP: GET /tweets/1234 (200 OK)  HTTP route path  HTTP method GraphQL: getTweetById(id: 1234)  GraphQL operation to map to
  • 55. GraphQL2REST: manifest.json  GraphQL operation name  Rename parameters  Customize status code  Allow flat REST request body  Omit fields from REST response PATCH /users/1234 | body = {"name": "Joe", "birthday": "1990-1-15"} 202 Accepted Mutation updateUserData(userOid: UUID!, newData: userDataInput!): User
  • 56. Exposes two public functions: • generateGqlQueryFiles() - schema pre-processing • init() - generate Express router at runtime
  • 57.
  • 59.
  • 61. GraphQL2REST o Works with any type of GraphQL server (local, remote, apollo-link, fetch….) o Customize (almost) everything o Response format o Error format o Status codes (for errors too) o Parameter names and mappings o Map a single REST endpoint to multiple GraphQL operations o Hide fields o Built-in filter for client o And more….
  • 62. We automatically generated a truly RESTful API without writing a single line of API code
  • 63. Should you choose GraphQL or REST for your public API?
  • 64. Why choose GraphQL for your INTERNAL API? • Increased velocity for development teams • Once the schema is set – frontend and backend teams can work independently • Clear communication, less meetings, schema is single-source-of-truth, changes are easy • Better developer experience for front-end devs: • No more post-processing on API responses • ”Free” (built-in) validation and auto-documentation • Better UI performance: reduced payloads and roundtrips, easier for multi-client
  • 65. Why not GraphQL? • Doesn’t shine in ALL use cases • Caching is not straightforward (HTTP POST) – requires extra libraries • Error handling – errors are ambiguous (compare to REST) • File upload is not straightforward • Solution: base64? Extra libraries? • Security: exposed to DOS attacks because the client has the control • Solution: maximal query nesting level, timeouts, rate limits… needs configuration • Schema is public, so no “internal”, “hidden”, “private” endpoints for sensitive queries • No conventions like in REST – it’s on US to implement or use extra libraries Everything has a proper solution! Just not out-of-the-box
  • 66. There’s a strong case for using GraphQL as an internal API. Is the world ready for GraphQL Public APIs? (what is the difference anyway…)
  • 69. Effects of going for GraphQL Public API • “Since our application engineers are using the same GraphQL platform that we’re making available to our integrators, this provides us with the opportunity to ship UI features in conjunction with API access. Using GraphQL on the frontend and backend eliminates the gap between what we release and what you can consume.” – GitHub
  • 70. Possible Issues with Public GraphQL API “GraphQL is client-centric, not server-driven”: • GraphQL moves too much of the burden to the user of the API • “Query building is tedious”, “frustration”, “unnecessarily complex compared to good ol’ REST” • Large learning curve for teams/people who might not be interested in using GraphQL • The internal team would have a vested interest in introspecting the API but an external developer might not. • Top client-side performance requires using external libraries • Is this an error or not? ”Lost exceptions”, partial errors, monitoring becomes not straightforward • Using REST = familiar framework = minimize ”business risk” (De-risking)
  • 71. Public APIs: GraphQL vs REST – any conclusion? • GraphQL is a great technology, but not a silver bullet • Good tech reasons to choose GraphQL, but also other considerations: • Market penetration • Public API user preferences, habits, needs, skills • Take a leap of faith like GitHub? • Gather information, survery our customers / developers?
  • 72. We automatically generated a truly RESTful API without writing a single line of API code