SlideShare a Scribd company logo
IBM Confidential
GraphQL API Management
Amit P. Acharya
Head of Product – API Management & Gateways
IBM
linkedin.com/in/amitpa
@amitacharya
The Next 35 minutes…
2
1. Why GraphQL? It’s for the end-user silly!
2. Wait.. What about REST? It isn’t going anywhere
3. So What’s API Management for GraphQL? It’s no rocket science
REST
Get ../books/
Get ../authors
• Iterate to display “My favorite
authors”
GraphQL – The Value Of IT
GraphQL
Query {
Books {
author
{ …
}
• Do we really need GraphQL?
• Technology is always providing
developers new solutions to
existing problems
• Lets step back and understand
how we got here
The Need…
• API interface represents the
“contract” (ie WSDL) created by
the API Provider
• API Provider exposes contract
for API consumer
• API Consumer consumes
service based on “the contract”
The 1.0 of APIs == Service Oriented Architecture (SOA)
• API Provider controls the service
interface
• API Consumer does not have
much input into the design of the
“contract”
Advantage: API Provider
• API interface represented by
open standard (OpenAPI), JSON
payloads, YAML configurations
• API Provider exposes standard
RESTful interface
• API Consumer discovers APIs
via self-service onboarding and
developer portal
The 2.0 of APIs == REST
• API Provider engages API
Consumer in API design
• API Provider provides simpler
interface of service
implementation
• API Consumer consumes APIs
via self-discovery and use
modern standards
Advantage: API Provider and API Consumer
• Query language and
implementation paradigm for data-centric APIs
• API Consumer defines the data they need (and
nothing more)
• API Provider handles complexity of obtaining
data from backend systems
The 3.0 of APIs = GraphQL and Async Endpoints
• API Consumer maintains control
over the data definition
• API Consumer does not care about
the internal data structure within
backend systems
• API Provider endpoint completely
driven by API consumer needs
Advantage: API Consumer
§ In GraphQL, profiles, or resource access rules
depend on the query:
POST ../graphql
{ me { name, age }}
POST ../graphql
mutation {
createK8Cluster (name: "c1"){
clusterId
}
}
vs.
GET …/profiles/me
vs.
POST …/resources/k8cluster
§ In REST APIs, profiles, or resource access rules
are defined for endpoints:
Question: Is GraphQL replacing REST?
• No. REST APIs are well-defined interfaces with standard error codes
• Easily cached and optimized for the HTTP protocol
GraphQL provides an alternative query-based approach, optimized for data-intensive operations
REST v/s And GraphQL
• Single GraphQL transaction may
invoke multiple backends
POST /sports/graphql? HTTP/1.1
query {
Players (name: "John T") {
name
league
team {
name
arena {
name
…
}
city
}
}}
Server
1. GET …/players/
2. GET …/team/player.name=?
3. GET …/arena/team.name=?
GraphQL Endpoints
• Learnings from query
languages (i.e. SQL)
• Can a “poor Query”
overwhelm backend
systems?
• Bad queries can be
malicious or unintentional
Select * From Transactions
SELECT cust.name, address.name, …. {infinite
attributes}
FROM cust, address, … {infinite tables},
WHERE cust.name = address.name AND …. {infinite
joins}
Selecting all data from a database
Complex and nested queries with multiple table joins
Understanding
Queries
• Throttling – Protect backends when
system usage spike
• Multiple nested backend calls
triggered by single GraphQL API call
• Variable compute time to resolve
query depends on query complexity
• Rate limits provide ability to limit
number of transactions per consumer
Server
Throttling & Rate Limits
• Threat Protection
• Rate Limit
• Versioning & Lifecycle
API Management of
GraphQL
GraphQL
Management
Runtime gateway
Init
introspection
query
(if allowed)
Server
Policy definition &
configuration
policy,
config
Policy enforcement
query
inspection
Query inspection
Static
analysis
schema
GraphQL client
GraphQL Management
{
"maxNesting": 2,
"operationType": "query",
"resolveCounts": {
"query:users": 1,
"user:employerCompany": 5
},
"typeCounts": {
"user": 5,
"company": 5
},
"typeComplexity": 10,
"resolveComplexity": 6
}
Think threat
prevention…
Think rates…
Think access
control or
pricing…
Query Analysis For Protection and SLA
• Detect and reject requests with
complex nesting
• Pre-calculate load to determine if
query will overwhelm backends
• Use point/weight system to calculate
“cost” for different query parameters
(e.g. GitHub GraphQL APIs)
Threat Protection
Essentials
Business
(includes Essentials)
Enterprise
(includes Business)
{ REST }
API Plans
Gold
Platinum
Levels = 10
Levels = 100
Differentiated API Plans
• GraphQL enables API consumer to easily retrieve
exactly the data it requires (from data intensive
backends)
• GraphQL management requires insight into the
impact of a query on backend systems
• GraphQL API management enables differentiated
API plans & new threat protection policies
Summary

More Related Content

PPTX
CONDG April 23 2020 - Baskar Rao - GraphQL
PPTX
An intro to GraphQL
PDF
Real Time Serverless Polling App
PDF
GraphQL Search
PDF
Performance optimisation with GraphQL
PDF
GraphQL: Enabling a new generation of API developer tools
PPTX
GraphQL, Redux, and React
PPTX
CONDG April 23 2020 - Baskar Rao - GraphQL
An intro to GraphQL
Real Time Serverless Polling App
GraphQL Search
Performance optimisation with GraphQL
GraphQL: Enabling a new generation of API developer tools
GraphQL, Redux, and React

What's hot (20)

PDF
Micro-Servicing Linked Data
PDF
GraphQL Fundamentals
PPTX
Attacking GraphQL
PPTX
GraphQL Misconfiguration
PDF
Introduction to GraphQL
PPTX
Shift Remote: WEB - GraphQL and React – Quick Start - Dubravko Bogovic (Infobip)
PDF
This Week in Neo4j - 24th November 2018
PDF
An open source, scalable queuing solution on top of apache kafka 2019
PDF
Apollo Server
PDF
Boost your APIs with GraphQL
PDF
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...
PPTX
Cracking web development
PPTX
DevNexus 2019: GraphQL From Beginner to Expert in 60 Minutes
PDF
Exposing GraphQLs as Managed APIs
PDF
PDF
This Week in Neo4j- 1st December 2018
PDF
Apollo server II
PDF
GraphQL Europe Recap
PDF
Getting started with GraphQL
PPTX
GraphQL API Gateway and microservices
Micro-Servicing Linked Data
GraphQL Fundamentals
Attacking GraphQL
GraphQL Misconfiguration
Introduction to GraphQL
Shift Remote: WEB - GraphQL and React – Quick Start - Dubravko Bogovic (Infobip)
This Week in Neo4j - 24th November 2018
An open source, scalable queuing solution on top of apache kafka 2019
Apollo Server
Boost your APIs with GraphQL
apidays LIVE Helsinki - Implementing OpenAPI and GraphQL Services with gRPC b...
Cracking web development
DevNexus 2019: GraphQL From Beginner to Expert in 60 Minutes
Exposing GraphQLs as Managed APIs
This Week in Neo4j- 1st December 2018
Apollo server II
GraphQL Europe Recap
Getting started with GraphQL
GraphQL API Gateway and microservices
Ad

Similar to APIdays Helsinki 2019 - GraphQL API Management with Amit P. Acharya, IBM (20)

PPTX
APIdays Helsinki 2019 - Beyond REST: GraphQL API Management with Amit Acharya...
PDF
APIdays Paris 2018 - Secure & Manage APIs with GraphQL, Ozair Sheikh, Directo...
PDF
GraphQL and its schema as a universal layer for database access
PDF
Implementing OpenAPI and GraphQL services with gRPC
PDF
apidays LIVE Hong Kong 2021 - Multi-Protocol APIs at Scale in Adidas by Jesus...
PDF
API Management for GraphQL
PDF
GraphQL the holy contract between client and server
PDF
LeanIX GraphQL Lessons Learned - CodeTalks 2017
PDF
Simplify Access to Data from Pivotal GemFire Using the GraphQL (G2QL) Extension
PPTX
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...
PPT
Pentest Application With GraphQL | Null Bangalore Meetup
PPTX
Kochi Mulesoft Meetup #6
PDF
PDF
GraphQL - A query language to empower your API consumers (NDC Sydney 2017)
PDF
GraphQL across the stack: How everything fits together
PDF
Camunda GraphQL Extension (09/2017 Berlin)
PPTX
Introduction to GraphQL
PDF
Tutorial: Building a GraphQL API in PHP
PDF
Choisir entre une API RPC, SOAP, REST, GraphQL? 
Et si le problème était ai...
PDF
London React August - GraphQL at The Financial Times - Viktor Charypar
APIdays Helsinki 2019 - Beyond REST: GraphQL API Management with Amit Acharya...
APIdays Paris 2018 - Secure & Manage APIs with GraphQL, Ozair Sheikh, Directo...
GraphQL and its schema as a universal layer for database access
Implementing OpenAPI and GraphQL services with gRPC
apidays LIVE Hong Kong 2021 - Multi-Protocol APIs at Scale in Adidas by Jesus...
API Management for GraphQL
GraphQL the holy contract between client and server
LeanIX GraphQL Lessons Learned - CodeTalks 2017
Simplify Access to Data from Pivotal GemFire Using the GraphQL (G2QL) Extension
apidays LIVE Australia 2020 - Have your cake and eat it too: GraphQL? REST? W...
Pentest Application With GraphQL | Null Bangalore Meetup
Kochi Mulesoft Meetup #6
GraphQL - A query language to empower your API consumers (NDC Sydney 2017)
GraphQL across the stack: How everything fits together
Camunda GraphQL Extension (09/2017 Berlin)
Introduction to GraphQL
Tutorial: Building a GraphQL API in PHP
Choisir entre une API RPC, SOAP, REST, GraphQL? 
Et si le problème était ai...
London React August - GraphQL at The Financial Times - Viktor Charypar
Ad

More from apidays (20)

PDF
apidays Munich 2025 - The Physics of Requirement Sciences Through Application...
PDF
apidays Munich 2025 - Developer Portals, API Catalogs, and Marketplaces, Miri...
PDF
apidays Munich 2025 - Making Sense of AI-Ready APIs in a Buzzword World, Andr...
PDF
apidays Munich 2025 - Integrate Your APIs into the New AI Marketplace, Senthi...
PDF
apidays Munich 2025 - The Double Life of the API Product Manager, Emmanuel Pa...
PDF
apidays Munich 2025 - Let’s build, debug and test a magic MCP server in Postm...
PDF
apidays Munich 2025 - The life-changing magic of great API docs, Jens Fischer...
PDF
apidays Munich 2025 - Automating Operations Without Reinventing the Wheel, Ma...
PDF
apidays Munich 2025 - Geospatial Artificial Intelligence (GeoAI) with OGC API...
PPTX
apidays Munich 2025 - GraphQL 101: I won't REST, until you GraphQL, Surbhi Si...
PPTX
apidays Munich 2025 - Effectively incorporating API Security into the overall...
PPTX
apidays Munich 2025 - Federated API Management and Governance, Vince Baker (D...
PPTX
apidays Munich 2025 - Agentic AI: A Friend or Foe?, Merja Kajava (Aavista Oy)
PPTX
apidays Munich 2025 - Streamline & Secure LLM Traffic with APISIX AI Gateway ...
PPTX
apidays Munich 2025 - Building Telco-Aware Apps with Open Gateway APIs, Subhr...
PPTX
apidays Munich 2025 - Building an AWS Serverless Application with Terraform, ...
PDF
apidays Helsinki & North 2025 - REST in Peace? Hunting the Dominant Design fo...
PDF
apidays Helsinki & North 2025 - Monetizing AI APIs: The New API Economy, Alla...
PDF
apidays Helsinki & North 2025 - How (not) to run a Graphql Stewardship Group,...
PDF
apidays Helsinki & North 2025 - APIs in the healthcare sector: hospitals inte...
apidays Munich 2025 - The Physics of Requirement Sciences Through Application...
apidays Munich 2025 - Developer Portals, API Catalogs, and Marketplaces, Miri...
apidays Munich 2025 - Making Sense of AI-Ready APIs in a Buzzword World, Andr...
apidays Munich 2025 - Integrate Your APIs into the New AI Marketplace, Senthi...
apidays Munich 2025 - The Double Life of the API Product Manager, Emmanuel Pa...
apidays Munich 2025 - Let’s build, debug and test a magic MCP server in Postm...
apidays Munich 2025 - The life-changing magic of great API docs, Jens Fischer...
apidays Munich 2025 - Automating Operations Without Reinventing the Wheel, Ma...
apidays Munich 2025 - Geospatial Artificial Intelligence (GeoAI) with OGC API...
apidays Munich 2025 - GraphQL 101: I won't REST, until you GraphQL, Surbhi Si...
apidays Munich 2025 - Effectively incorporating API Security into the overall...
apidays Munich 2025 - Federated API Management and Governance, Vince Baker (D...
apidays Munich 2025 - Agentic AI: A Friend or Foe?, Merja Kajava (Aavista Oy)
apidays Munich 2025 - Streamline & Secure LLM Traffic with APISIX AI Gateway ...
apidays Munich 2025 - Building Telco-Aware Apps with Open Gateway APIs, Subhr...
apidays Munich 2025 - Building an AWS Serverless Application with Terraform, ...
apidays Helsinki & North 2025 - REST in Peace? Hunting the Dominant Design fo...
apidays Helsinki & North 2025 - Monetizing AI APIs: The New API Economy, Alla...
apidays Helsinki & North 2025 - How (not) to run a Graphql Stewardship Group,...
apidays Helsinki & North 2025 - APIs in the healthcare sector: hospitals inte...

Recently uploaded (20)

PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Spectral efficient network and resource selection model in 5G networks
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Machine learning based COVID-19 study performance prediction
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Encapsulation theory and applications.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
MYSQL Presentation for SQL database connectivity
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Building Integrated photovoltaic BIPV_UPV.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Understanding_Digital_Forensics_Presentation.pptx
Spectral efficient network and resource selection model in 5G networks
“AI and Expert System Decision Support & Business Intelligence Systems”
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
Machine learning based COVID-19 study performance prediction
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Empathic Computing: Creating Shared Understanding
Unlocking AI with Model Context Protocol (MCP)
MIND Revenue Release Quarter 2 2025 Press Release
Encapsulation theory and applications.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
MYSQL Presentation for SQL database connectivity

APIdays Helsinki 2019 - GraphQL API Management with Amit P. Acharya, IBM

  • 1. IBM Confidential GraphQL API Management Amit P. Acharya Head of Product – API Management & Gateways IBM linkedin.com/in/amitpa @amitacharya
  • 2. The Next 35 minutes… 2 1. Why GraphQL? It’s for the end-user silly! 2. Wait.. What about REST? It isn’t going anywhere 3. So What’s API Management for GraphQL? It’s no rocket science
  • 3. REST Get ../books/ Get ../authors • Iterate to display “My favorite authors” GraphQL – The Value Of IT GraphQL Query { Books { author { … }
  • 4. • Do we really need GraphQL? • Technology is always providing developers new solutions to existing problems • Lets step back and understand how we got here The Need…
  • 5. • API interface represents the “contract” (ie WSDL) created by the API Provider • API Provider exposes contract for API consumer • API Consumer consumes service based on “the contract” The 1.0 of APIs == Service Oriented Architecture (SOA)
  • 6. • API Provider controls the service interface • API Consumer does not have much input into the design of the “contract” Advantage: API Provider
  • 7. • API interface represented by open standard (OpenAPI), JSON payloads, YAML configurations • API Provider exposes standard RESTful interface • API Consumer discovers APIs via self-service onboarding and developer portal The 2.0 of APIs == REST
  • 8. • API Provider engages API Consumer in API design • API Provider provides simpler interface of service implementation • API Consumer consumes APIs via self-discovery and use modern standards Advantage: API Provider and API Consumer
  • 9. • Query language and implementation paradigm for data-centric APIs • API Consumer defines the data they need (and nothing more) • API Provider handles complexity of obtaining data from backend systems The 3.0 of APIs = GraphQL and Async Endpoints
  • 10. • API Consumer maintains control over the data definition • API Consumer does not care about the internal data structure within backend systems • API Provider endpoint completely driven by API consumer needs Advantage: API Consumer
  • 11. § In GraphQL, profiles, or resource access rules depend on the query: POST ../graphql { me { name, age }} POST ../graphql mutation { createK8Cluster (name: "c1"){ clusterId } } vs. GET …/profiles/me vs. POST …/resources/k8cluster § In REST APIs, profiles, or resource access rules are defined for endpoints: Question: Is GraphQL replacing REST? • No. REST APIs are well-defined interfaces with standard error codes • Easily cached and optimized for the HTTP protocol GraphQL provides an alternative query-based approach, optimized for data-intensive operations REST v/s And GraphQL
  • 12. • Single GraphQL transaction may invoke multiple backends POST /sports/graphql? HTTP/1.1 query { Players (name: "John T") { name league team { name arena { name … } city } }} Server 1. GET …/players/ 2. GET …/team/player.name=? 3. GET …/arena/team.name=? GraphQL Endpoints
  • 13. • Learnings from query languages (i.e. SQL) • Can a “poor Query” overwhelm backend systems? • Bad queries can be malicious or unintentional Select * From Transactions SELECT cust.name, address.name, …. {infinite attributes} FROM cust, address, … {infinite tables}, WHERE cust.name = address.name AND …. {infinite joins} Selecting all data from a database Complex and nested queries with multiple table joins Understanding Queries
  • 14. • Throttling – Protect backends when system usage spike • Multiple nested backend calls triggered by single GraphQL API call • Variable compute time to resolve query depends on query complexity • Rate limits provide ability to limit number of transactions per consumer Server Throttling & Rate Limits
  • 15. • Threat Protection • Rate Limit • Versioning & Lifecycle API Management of GraphQL
  • 16. GraphQL Management Runtime gateway Init introspection query (if allowed) Server Policy definition & configuration policy, config Policy enforcement query inspection Query inspection Static analysis schema GraphQL client GraphQL Management
  • 17. { "maxNesting": 2, "operationType": "query", "resolveCounts": { "query:users": 1, "user:employerCompany": 5 }, "typeCounts": { "user": 5, "company": 5 }, "typeComplexity": 10, "resolveComplexity": 6 } Think threat prevention… Think rates… Think access control or pricing… Query Analysis For Protection and SLA
  • 18. • Detect and reject requests with complex nesting • Pre-calculate load to determine if query will overwhelm backends • Use point/weight system to calculate “cost” for different query parameters (e.g. GitHub GraphQL APIs) Threat Protection
  • 20. Gold Platinum Levels = 10 Levels = 100 Differentiated API Plans
  • 21. • GraphQL enables API consumer to easily retrieve exactly the data it requires (from data intensive backends) • GraphQL management requires insight into the impact of a query on backend systems • GraphQL API management enables differentiated API plans & new threat protection policies Summary