SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
Lessons From The Battlefield
Understand the maturity of design and delivery of an API and be
open about its state	
Define a contract: having an API in place takes consumer website
to market without destabilizing the enterprise back-end	
1	
  
If the API is good enough, ship it. The layer Cake, APIs on APIS, is
good! Problem with code-first approach: Use APIs to decouple
systems rather than expose internal systems. 	
2	
  
3	
  
Let’s Talk	
	
APX	
Application Programming eXperience
Now?	
In the Future?	
Don’t fall prey to
paralysis! Limit
pool of customers	
Commonality is good
in API BUT
Shoehorning is not!	
Who Is Your Customer?
Orchestrating Service Provider 	
 OR
What Is Your Value Add?	
Core Single-Purpose Service	
Front End 	
Think Consumer Experience	
Back End 	
Think business processes	
Looking Backwards	
Straight-through Proxy: Abstract
Way of Expressing Domain
Model Behind You	
Looking Forward 	
New Facade: Create a new
service based upon
capabilities behind you	
OR
OR
Think APX	
	
3 Critical Principles To Remember
This is a long-lived interface 	
Expose the interface you want
your clients to develop a
dependency on. 	
	
1
Three Critical Principles
of APX
Don’t Expose Dirty Laundry	
Don’t simply reflect your back
end model. Instead, come up
with simple, long-lasting
domain model. 	
2
Three Critical Principles
of APX
Craft API for your users	
What will they love? If your API
is really good, your users will
get attached to it.	
3
Three Critical Principles
of APX
Discover it?	
Explore it?	
Access it?	
Build on it?	
Verify it?	
Run on it?	
Say goodbye?	
Checklist	
Publish it?	
Describe it?	
Expose it?	
Implement it?	
Sandbox it?	
Operate it?	
Version/deprecate?	
How Will You….	
How Will They….
Discover it?	
Explore it?	
Access it?	
Build on it?	
Verify it?	
Run on it?	
Say goodbye?	
Solution	
Publish it?	
Describe it?	
Expose it?	
Implement it?	
Sandbox it?	
Operate it?	
Version/deprecate?	
How Will You….	
How Will They….	
API Portal	
RAML tooling	
API Manager	
APIkit	
Mule/
ClToudHub	
API Manager	
API Portal
What Kinds 	
Of API?
What Kinds of API?	
SOAP and WSDL over HTTP	
REST: HTTP taken seriously	
•  e.g. GET /users ß a page/data representing users	
	
Mix & Match:	
•  Google protocol buffers over HTTP	
•  <something> over websockets	
API facades:	
•  the RESTmullet (REST in front,
SOAP in back)	
•  mobile REST/GPB/MQTT on
top of SOA
What Kinds of API?	
SOAP and WSDL over HTTP	
REST: HTTP taken seriously	
•  e.g. GET /users ß a page/data representing users	
	
Mix & Match:	
•  Google protocol buffers over HTTP	
•  <something> over websockets	
API facades:	
•  the RESTmullet (REST in front,
SOAP in back)	
•  mobile REST/GPB/MQTT on
top of SOA	
My Focus Today
Why REST?	
	
It’s simple!
•  /users
•  /users?zip=94301&subscribed=true
•  /users/me
•  /users/5638
•  /users/5638/books
•  /users/5638/books/20467
•  /books
•  /books/20467
Nouns: Resources	
	
	
Carefully consider your domain objects	
Query params are refinements on resources
Verbs: Methods	
GET retrieve (idempotent!)
POST create in container
PUT update – replace (usually)
PATCH update – partial
DELETE remove
HEAD GET w/o body (headers)
OPTIONS metadata, e.g. methods
Status codes	
•  Standardized	
•  Use them!	
•  Don't return 200
unless it's really
OK	
•  No surprises pleas	
	
	
	
Headers	
•  Standardized	
•  Use them!
How to describe your	
specific API?	
	
Your Answer: 	
RAML
Clean, clear, powerful	
	
 100% natural & organic	
Open, vendor-neutral	
	
 Practical	
	
 Pattern-based design is 	
	
 built in	
RESTful API Modeling Language
API Design 	
Considerations
Align to a logical model:
users & groups
Align to a logical model:
eCommerce
collections
and members	
Patterns: resource types	
"special" id's	
one-off resources	
read-only resources
Patterns: method traits
Patterns: body schemas	
or just use good ol'
form data:
XML schema	
JSON schema	
examples
Patterns: security schemes	
username/password; cleartext or use digest	
end user allows app to access their data	
better to put token in header, not query	
the OAuth multi-step dance
Username/password:	
• End-user vs server	
• Who stores credentials?	
• Beware of reuse; if you do store, one-way hash w/salt	
• Minimize client & in-transit exposure	
Tokenization	
• Short-lived and long-
lived; refreshing	
• App token vs user tokens	
OAuth2 if you
need 3-way
auth	
•  Be aware of its types	
•  Don't reinvent this
particular wheel	
Elements of API security	
HTTP
security
principles
still apply	
•  Beware of chatty
errors	
•  Good URL hygiene
The nature of the API	
Coarse-grained or fine – chatty or concise?	
Usecases! à you often need both	
Latency: remember the speed of light	
	
Bandwidth a problem?	
Compression, tokenization	
Partial requests and responses	
Reconsider format and protocol	
	
Implementability?	
Befriend your integration/orchestration layer	
Think layers; think cacheing
Good APIs aren't trivial	
But with the proper
approach, they can be
your home-court
advantage	
 "First one home wins?"	
 "Deal"	
"#$*%!"
Designing a Great API Consumer Experience

Más contenido relacionado

Destacado

Creating Restful Web Services with restish
Creating Restful Web Services with restishCreating Restful Web Services with restish
Creating Restful Web Services with restishGrig Gheorghiu
 
APIs in a .NET World
APIs in a .NET WorldAPIs in a .NET World
APIs in a .NET WorldMuleSoft
 
CIO Panel: Digital Transformation to Achieve Speed and Control
CIO Panel: Digital Transformation to Achieve Speed and ControlCIO Panel: Digital Transformation to Achieve Speed and Control
CIO Panel: Digital Transformation to Achieve Speed and ControlMuleSoft
 
Launch Mobile Applications with Speed While Maintaining Control
Launch Mobile Applications with Speed While Maintaining ControlLaunch Mobile Applications with Speed While Maintaining Control
Launch Mobile Applications with Speed While Maintaining ControlMuleSoft
 
Product Keynote: How to Compete in the API Economy
Product Keynote: How to Compete in the API EconomyProduct Keynote: How to Compete in the API Economy
Product Keynote: How to Compete in the API EconomyMuleSoft
 
Transform Your Business with API-led Connectivity
Transform Your Business with API-led ConnectivityTransform Your Business with API-led Connectivity
Transform Your Business with API-led ConnectivityMuleSoft
 
Connecting the New Enterprise | MuleSoft
Connecting the New Enterprise | MuleSoftConnecting the New Enterprise | MuleSoft
Connecting the New Enterprise | MuleSoftMuleSoft
 
The Blueprint for Change: How the Best Are Succeeding in Transformation
The Blueprint for Change: How the Best Are Succeeding in TransformationThe Blueprint for Change: How the Best Are Succeeding in Transformation
The Blueprint for Change: How the Best Are Succeeding in TransformationMuleSoft
 
Why Integrate using an API? | MuleSoft
Why Integrate using an API? | MuleSoftWhy Integrate using an API? | MuleSoft
Why Integrate using an API? | MuleSoftMuleSoft
 
Introduction to IBM API Management
Introduction to IBM API Management Introduction to IBM API Management
Introduction to IBM API Management Patrick Bouillaud
 
Guide to Application Performance: Planning to Continued Optimization
Guide to Application Performance: Planning to Continued OptimizationGuide to Application Performance: Planning to Continued Optimization
Guide to Application Performance: Planning to Continued OptimizationMuleSoft
 
Rethinking it for digital transformation
Rethinking it for digital transformationRethinking it for digital transformation
Rethinking it for digital transformationMuleSoft
 
Mule : Building Blocks for Microservices
Mule : Building Blocks for MicroservicesMule : Building Blocks for Microservices
Mule : Building Blocks for MicroservicesAnirudh Pandit
 
Mule ESB Tutorial Part 2
Mule ESB Tutorial Part 2Mule ESB Tutorial Part 2
Mule ESB Tutorial Part 2Srikanth N
 

Destacado (17)

Creating Restful Web Services with restish
Creating Restful Web Services with restishCreating Restful Web Services with restish
Creating Restful Web Services with restish
 
APIs in a .NET World
APIs in a .NET WorldAPIs in a .NET World
APIs in a .NET World
 
CIO Panel: Digital Transformation to Achieve Speed and Control
CIO Panel: Digital Transformation to Achieve Speed and ControlCIO Panel: Digital Transformation to Achieve Speed and Control
CIO Panel: Digital Transformation to Achieve Speed and Control
 
Launch Mobile Applications with Speed While Maintaining Control
Launch Mobile Applications with Speed While Maintaining ControlLaunch Mobile Applications with Speed While Maintaining Control
Launch Mobile Applications with Speed While Maintaining Control
 
Product Keynote: How to Compete in the API Economy
Product Keynote: How to Compete in the API EconomyProduct Keynote: How to Compete in the API Economy
Product Keynote: How to Compete in the API Economy
 
MAX-CONNECT launches MAX-Jobs
MAX-CONNECT launches MAX-JobsMAX-CONNECT launches MAX-Jobs
MAX-CONNECT launches MAX-Jobs
 
Transform Your Business with API-led Connectivity
Transform Your Business with API-led ConnectivityTransform Your Business with API-led Connectivity
Transform Your Business with API-led Connectivity
 
Connecting the New Enterprise | MuleSoft
Connecting the New Enterprise | MuleSoftConnecting the New Enterprise | MuleSoft
Connecting the New Enterprise | MuleSoft
 
The Blueprint for Change: How the Best Are Succeeding in Transformation
The Blueprint for Change: How the Best Are Succeeding in TransformationThe Blueprint for Change: How the Best Are Succeeding in Transformation
The Blueprint for Change: How the Best Are Succeeding in Transformation
 
Munit Mule ESB
Munit Mule ESBMunit Mule ESB
Munit Mule ESB
 
Why Integrate using an API? | MuleSoft
Why Integrate using an API? | MuleSoftWhy Integrate using an API? | MuleSoft
Why Integrate using an API? | MuleSoft
 
Introduction to IBM API Management
Introduction to IBM API Management Introduction to IBM API Management
Introduction to IBM API Management
 
Guide to Application Performance: Planning to Continued Optimization
Guide to Application Performance: Planning to Continued OptimizationGuide to Application Performance: Planning to Continued Optimization
Guide to Application Performance: Planning to Continued Optimization
 
Rethinking it for digital transformation
Rethinking it for digital transformationRethinking it for digital transformation
Rethinking it for digital transformation
 
Mule ESB Training
Mule ESB TrainingMule ESB Training
Mule ESB Training
 
Mule : Building Blocks for Microservices
Mule : Building Blocks for MicroservicesMule : Building Blocks for Microservices
Mule : Building Blocks for Microservices
 
Mule ESB Tutorial Part 2
Mule ESB Tutorial Part 2Mule ESB Tutorial Part 2
Mule ESB Tutorial Part 2
 

Más de MuleSoft

The CIO's Guide to Digital Transformation
The CIO's Guide to Digital TransformationThe CIO's Guide to Digital Transformation
The CIO's Guide to Digital TransformationMuleSoft
 
Gluecon 2017: Metadata is the Glue
Gluecon 2017: Metadata is the GlueGluecon 2017: Metadata is the Glue
Gluecon 2017: Metadata is the GlueMuleSoft
 
Gluecon 2017: API Modelling Framework - A Toolbox for Interacting With API S...
Gluecon 2017: API Modelling Framework -  A Toolbox for Interacting With API S...Gluecon 2017: API Modelling Framework -  A Toolbox for Interacting With API S...
Gluecon 2017: API Modelling Framework - A Toolbox for Interacting With API S...MuleSoft
 
How to Get Unstuck
How to Get Unstuck How to Get Unstuck
How to Get Unstuck MuleSoft
 
Product Vision and Roadmap for Anypoint Platform
Product Vision and Roadmap for Anypoint PlatformProduct Vision and Roadmap for Anypoint Platform
Product Vision and Roadmap for Anypoint PlatformMuleSoft
 
How API Enablement Drives Legacy Modernization
How API Enablement Drives Legacy ModernizationHow API Enablement Drives Legacy Modernization
How API Enablement Drives Legacy ModernizationMuleSoft
 
Microservices on Anypoint Platform
Microservices on Anypoint PlatformMicroservices on Anypoint Platform
Microservices on Anypoint PlatformMuleSoft
 
Applying UX principles and methods to APIs
Applying UX principles and methods to APIs Applying UX principles and methods to APIs
Applying UX principles and methods to APIs MuleSoft
 
Secure by design: Scaling security across the enterprise
Secure by design: Scaling security across the enterpriseSecure by design: Scaling security across the enterprise
Secure by design: Scaling security across the enterpriseMuleSoft
 
Gathering Operational Intelligence in Complex Environments at Splunk
Gathering Operational Intelligence in Complex Environments at SplunkGathering Operational Intelligence in Complex Environments at Splunk
Gathering Operational Intelligence in Complex Environments at SplunkMuleSoft
 
CloudHub and other Cloud Deployment Options
CloudHub and other Cloud Deployment OptionsCloudHub and other Cloud Deployment Options
CloudHub and other Cloud Deployment OptionsMuleSoft
 
Governing and Sharing your Integration Assets
Governing and Sharing your Integration AssetsGoverning and Sharing your Integration Assets
Governing and Sharing your Integration AssetsMuleSoft
 
MuleSoft's Approach to Driving Customer Outcomes
MuleSoft's Approach to Driving Customer Outcomes MuleSoft's Approach to Driving Customer Outcomes
MuleSoft's Approach to Driving Customer Outcomes MuleSoft
 
Designing and building Mule applications
Designing and building Mule applicationsDesigning and building Mule applications
Designing and building Mule applicationsMuleSoft
 
Object Store
Object StoreObject Store
Object StoreMuleSoft
 
Introducing Anypoint Exchange 2.0
Introducing Anypoint Exchange 2.0Introducing Anypoint Exchange 2.0
Introducing Anypoint Exchange 2.0MuleSoft
 
Troubleshooting Anypoint Platform
Troubleshooting Anypoint PlatformTroubleshooting Anypoint Platform
Troubleshooting Anypoint PlatformMuleSoft
 
Relevancy in a Rapidly Changing World (Yvonne Wassenaar)
Relevancy in a Rapidly Changing World (Yvonne Wassenaar)Relevancy in a Rapidly Changing World (Yvonne Wassenaar)
Relevancy in a Rapidly Changing World (Yvonne Wassenaar)MuleSoft
 
Leveraging APIs and the Cloud to Transform Veteran Care (Steve Rushing)
Leveraging APIs and the Cloud to Transform Veteran Care (Steve Rushing)Leveraging APIs and the Cloud to Transform Veteran Care (Steve Rushing)
Leveraging APIs and the Cloud to Transform Veteran Care (Steve Rushing)MuleSoft
 
Role of Technology in the Evolution of P&C Insurance (Marcus Ryu)
Role of Technology in the Evolution of P&C Insurance (Marcus Ryu)Role of Technology in the Evolution of P&C Insurance (Marcus Ryu)
Role of Technology in the Evolution of P&C Insurance (Marcus Ryu)MuleSoft
 

Más de MuleSoft (20)

The CIO's Guide to Digital Transformation
The CIO's Guide to Digital TransformationThe CIO's Guide to Digital Transformation
The CIO's Guide to Digital Transformation
 
Gluecon 2017: Metadata is the Glue
Gluecon 2017: Metadata is the GlueGluecon 2017: Metadata is the Glue
Gluecon 2017: Metadata is the Glue
 
Gluecon 2017: API Modelling Framework - A Toolbox for Interacting With API S...
Gluecon 2017: API Modelling Framework -  A Toolbox for Interacting With API S...Gluecon 2017: API Modelling Framework -  A Toolbox for Interacting With API S...
Gluecon 2017: API Modelling Framework - A Toolbox for Interacting With API S...
 
How to Get Unstuck
How to Get Unstuck How to Get Unstuck
How to Get Unstuck
 
Product Vision and Roadmap for Anypoint Platform
Product Vision and Roadmap for Anypoint PlatformProduct Vision and Roadmap for Anypoint Platform
Product Vision and Roadmap for Anypoint Platform
 
How API Enablement Drives Legacy Modernization
How API Enablement Drives Legacy ModernizationHow API Enablement Drives Legacy Modernization
How API Enablement Drives Legacy Modernization
 
Microservices on Anypoint Platform
Microservices on Anypoint PlatformMicroservices on Anypoint Platform
Microservices on Anypoint Platform
 
Applying UX principles and methods to APIs
Applying UX principles and methods to APIs Applying UX principles and methods to APIs
Applying UX principles and methods to APIs
 
Secure by design: Scaling security across the enterprise
Secure by design: Scaling security across the enterpriseSecure by design: Scaling security across the enterprise
Secure by design: Scaling security across the enterprise
 
Gathering Operational Intelligence in Complex Environments at Splunk
Gathering Operational Intelligence in Complex Environments at SplunkGathering Operational Intelligence in Complex Environments at Splunk
Gathering Operational Intelligence in Complex Environments at Splunk
 
CloudHub and other Cloud Deployment Options
CloudHub and other Cloud Deployment OptionsCloudHub and other Cloud Deployment Options
CloudHub and other Cloud Deployment Options
 
Governing and Sharing your Integration Assets
Governing and Sharing your Integration AssetsGoverning and Sharing your Integration Assets
Governing and Sharing your Integration Assets
 
MuleSoft's Approach to Driving Customer Outcomes
MuleSoft's Approach to Driving Customer Outcomes MuleSoft's Approach to Driving Customer Outcomes
MuleSoft's Approach to Driving Customer Outcomes
 
Designing and building Mule applications
Designing and building Mule applicationsDesigning and building Mule applications
Designing and building Mule applications
 
Object Store
Object StoreObject Store
Object Store
 
Introducing Anypoint Exchange 2.0
Introducing Anypoint Exchange 2.0Introducing Anypoint Exchange 2.0
Introducing Anypoint Exchange 2.0
 
Troubleshooting Anypoint Platform
Troubleshooting Anypoint PlatformTroubleshooting Anypoint Platform
Troubleshooting Anypoint Platform
 
Relevancy in a Rapidly Changing World (Yvonne Wassenaar)
Relevancy in a Rapidly Changing World (Yvonne Wassenaar)Relevancy in a Rapidly Changing World (Yvonne Wassenaar)
Relevancy in a Rapidly Changing World (Yvonne Wassenaar)
 
Leveraging APIs and the Cloud to Transform Veteran Care (Steve Rushing)
Leveraging APIs and the Cloud to Transform Veteran Care (Steve Rushing)Leveraging APIs and the Cloud to Transform Veteran Care (Steve Rushing)
Leveraging APIs and the Cloud to Transform Veteran Care (Steve Rushing)
 
Role of Technology in the Evolution of P&C Insurance (Marcus Ryu)
Role of Technology in the Evolution of P&C Insurance (Marcus Ryu)Role of Technology in the Evolution of P&C Insurance (Marcus Ryu)
Role of Technology in the Evolution of P&C Insurance (Marcus Ryu)
 

Último

How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noidabntitsolutionsrishis
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 

Último (20)

How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in NoidaBuds n Tech IT Solutions: Top-Notch Web Services in Noida
Buds n Tech IT Solutions: Top-Notch Web Services in Noida
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 

Designing a Great API Consumer Experience

  • 1.
  • 2. Lessons From The Battlefield
  • 3. Understand the maturity of design and delivery of an API and be open about its state Define a contract: having an API in place takes consumer website to market without destabilizing the enterprise back-end 1   If the API is good enough, ship it. The layer Cake, APIs on APIS, is good! Problem with code-first approach: Use APIs to decouple systems rather than expose internal systems. 2   3  
  • 5. Now? In the Future? Don’t fall prey to paralysis! Limit pool of customers Commonality is good in API BUT Shoehorning is not! Who Is Your Customer?
  • 6. Orchestrating Service Provider OR What Is Your Value Add? Core Single-Purpose Service Front End Think Consumer Experience Back End Think business processes Looking Backwards Straight-through Proxy: Abstract Way of Expressing Domain Model Behind You Looking Forward New Facade: Create a new service based upon capabilities behind you OR OR
  • 7. Think APX 3 Critical Principles To Remember
  • 8. This is a long-lived interface Expose the interface you want your clients to develop a dependency on. 1 Three Critical Principles of APX
  • 9. Don’t Expose Dirty Laundry Don’t simply reflect your back end model. Instead, come up with simple, long-lasting domain model. 2 Three Critical Principles of APX
  • 10. Craft API for your users What will they love? If your API is really good, your users will get attached to it. 3 Three Critical Principles of APX
  • 11. Discover it? Explore it? Access it? Build on it? Verify it? Run on it? Say goodbye? Checklist Publish it? Describe it? Expose it? Implement it? Sandbox it? Operate it? Version/deprecate? How Will You…. How Will They….
  • 12. Discover it? Explore it? Access it? Build on it? Verify it? Run on it? Say goodbye? Solution Publish it? Describe it? Expose it? Implement it? Sandbox it? Operate it? Version/deprecate? How Will You…. How Will They…. API Portal RAML tooling API Manager APIkit Mule/ ClToudHub API Manager API Portal
  • 14. What Kinds of API? SOAP and WSDL over HTTP REST: HTTP taken seriously •  e.g. GET /users ß a page/data representing users Mix & Match: •  Google protocol buffers over HTTP •  <something> over websockets API facades: •  the RESTmullet (REST in front, SOAP in back) •  mobile REST/GPB/MQTT on top of SOA
  • 15. What Kinds of API? SOAP and WSDL over HTTP REST: HTTP taken seriously •  e.g. GET /users ß a page/data representing users Mix & Match: •  Google protocol buffers over HTTP •  <something> over websockets API facades: •  the RESTmullet (REST in front, SOAP in back) •  mobile REST/GPB/MQTT on top of SOA My Focus Today
  • 17. •  /users •  /users?zip=94301&subscribed=true •  /users/me •  /users/5638 •  /users/5638/books •  /users/5638/books/20467 •  /books •  /books/20467 Nouns: Resources Carefully consider your domain objects Query params are refinements on resources
  • 18. Verbs: Methods GET retrieve (idempotent!) POST create in container PUT update – replace (usually) PATCH update – partial DELETE remove HEAD GET w/o body (headers) OPTIONS metadata, e.g. methods Status codes •  Standardized •  Use them! •  Don't return 200 unless it's really OK •  No surprises pleas Headers •  Standardized •  Use them!
  • 19. How to describe your specific API? Your Answer: RAML
  • 20. Clean, clear, powerful 100% natural & organic Open, vendor-neutral Practical Pattern-based design is built in RESTful API Modeling Language
  • 22. Align to a logical model: users & groups
  • 23. Align to a logical model: eCommerce
  • 24. collections and members Patterns: resource types "special" id's one-off resources read-only resources
  • 26. Patterns: body schemas or just use good ol' form data: XML schema JSON schema examples
  • 27. Patterns: security schemes username/password; cleartext or use digest end user allows app to access their data better to put token in header, not query the OAuth multi-step dance
  • 28. Username/password: • End-user vs server • Who stores credentials? • Beware of reuse; if you do store, one-way hash w/salt • Minimize client & in-transit exposure Tokenization • Short-lived and long- lived; refreshing • App token vs user tokens OAuth2 if you need 3-way auth •  Be aware of its types •  Don't reinvent this particular wheel Elements of API security HTTP security principles still apply •  Beware of chatty errors •  Good URL hygiene
  • 29. The nature of the API Coarse-grained or fine – chatty or concise? Usecases! à you often need both Latency: remember the speed of light Bandwidth a problem? Compression, tokenization Partial requests and responses Reconsider format and protocol Implementability? Befriend your integration/orchestration layer Think layers; think cacheing
  • 30. Good APIs aren't trivial But with the proper approach, they can be your home-court advantage "First one home wins?" "Deal" "#$*%!"