SlideShare une entreprise Scribd logo
1  sur  48
Télécharger pour lire hors ligne
PAST, PRESENT AND FUTURE OF
APIS OF MOBILE AND WEB APPS
Ole Lensmar – CTO – SmartBear Software
Once upon a time…
We tried to connect (early 90:ies)
 Multiple protocols / initiatives
– DCE/RPC (OSF)
– CORBA (OMG)
– COM / DCOM (Microsoft)
– J2EE / RMI (Sun)
 They all had their challenges
– Proprietary, Complex, Limited, etc.
Then - the Internet came along…
 HTTP
– lightweight “universal” text-based protocol
 XML
– “lightweight” text markup syntax
 “POX” – plain old XML
 HTTP+XML became XML-RPC
 SOAP (Microsoft)
– “Simple Object Access Protocol”
– XML-based messaging protocol – transport independent
REST arrives – and SOAP evolves
 REST was introduced by Roy T. Fielding
– “Architectural Styles and the Design of Network-based
Software Architectures” (2000)
 SOAP 1.1
– WSDL, XML-Schema
– W3C recommendation in 2003
 WS-I Basic Profile (2004)
– Guidelines on how to implement SOAP related-standards
– Doc/Literal replaces RPC
– Top-down vs Bottom up design
… and Web APIs emerge
 Salesforce launches XML API (2000)
– “Salesforce Automation”
 eBay launches their API (2000)
– Initially limited to select partners/developers
 Social
– Del.icio.us (2003)
– Flickr (2004)
– Facebook, Twitter, Google Maps, etc (2006)
 All APIs were central to the reach and success of their
providers
Web Applications evolve
 Web 2.0 Technology Stack
– AJAX (Asynchronous JavaScript and XML)
– HTML5 / CSS
– JSON
 Web starts turning into a platform
– ProgrammableWeb launches 2005
– API Management (Mashery)
– Still mainly XML
At the same time - SOAP gets “enterprisy”
 QoS specifications – WS-*
– WS-Addressing
– WS-Security
– WS-Reliable Messaging
– etc
 SOA Architectures become “mainstream”
 Limited use of SOAP for public APIs
– Difficult to consume from Web 2.0 stack
The client landscape continued to change
 Mobile takes the lead with native/hybrid/web
applications
– Mostly API-driven
 Single Page Applications (SPA)
– HTML5
– Dynamic UI that pulls all data from backend via APIs
 Device proliferation
– Android, iOS, Windows Phone, TVs, Consoles, etc..
– APIs enable adoption to new devices
APIs fuel cloud and infrastructure
 Amazon
– S3 – cloud based storage (2006)
– EC2 - re-sizable compute capacity (2006)
– Both REST APIs that lacked web interfaces for
several years!
 Twilio – voice and messaging (2007)
-> APIs enable a “building-block” approach to
applications and architectures
APIs at the heart of applications
API
Web / SPA
Mobile
Devices
Integrations
Storage
API
eCommerce
APIMessaging
API
Compute
API
Logic
And APIs just continue to grow…
 SOA architectures are moving to REST from SOAP
 API Directories
– programmableweb.com
– apihub.com
– publicapis.com
 apicommons.org
– Collection of shared API definitions
 QoS
– OAuth, OpenID Connect, Tokens, etc.
From an architectural
point of view…
20 years ago
ACME Corp
(does monolithics)
10 years ago
ACME Corp
(does SOA)
Web
app
Corp
SOA
P
MQ
API
RMI
And now… Corp
Corp
ACME Corp
(does APIs)
Web
app
Corp
App
+ API
API
API
API
Devi
ce
APP
API
Devi
ce
IoT
Devi
ce
IoT
Devi
ce
API
API
API Oriented Architecture
 Key ingredients in a distributed application
architecture can be consumed / provided via APIs
– Storage
– Messaging
– eCommerce
– Virtualization
– Compute / Provisioning
– Etc..
 Focus on core business
Let’s back up a little…
What is REST?
 REST is an architectural style – not a technology!
 Resources are identified with URIs
– /users/12343/address
– /cities/boston/hotels?area=downtown
 HTTP Verbs are used for actions
– GET – retrieve resource representation(s)
– POST – create resource(s) at URI (not idempotent)
– PUT – replace resources identified by URI (idempotent)
– DELETE – delete specified resource(s)
– PATCH – update specified resource
 Representations and Content-types control semantics
Hypermedia APIs
 HATEOAS – Hypermedia As The Engine Of Application State
 Embed links to applicable actions in REST responses – clients
shouldn’t need to know in advance what can be done next
 Pros
– Designed for scale
– Change and Context tolerant
– Allows “discovery” of APIs
 Cons
– Hypermedia is a “human” concept - client logic can get complex
– Requires aggressive caching for performance
REST Maturity Model
Hypermedia Example
Hypermedia Example
Hypermedia API Example
REST API Descriptions
 API metadata can be used for
– documentation,
– validation + testing
– code-generation
 Swagger - code oriented (bottom-up)
– large community + great tools for code generation
 RAML, API-Blueprint - design-oriented (top-down)
– great authoring tools
 WADL - inspired by WSDL – never caught on
Swagger Example
Swagger UI
Looking ahead – REST faces
some challenges…
Experience APIs
 Model APIs after user experience – not resources
 NetFlix
– 800+ devices / homescreens
– Each homescreen made multiple REST calls – doesn’t
scale
– Solution – build one API call for each device;
• /api/homescreen/ps4
 Orchestrate / Aggregate needed internal APIs on
the server
Binary Protocols
 Several CORBA-like alternative
– Thrift (Facebook)
– Protobuf (Google)
– Avro (Apache/Hadoop)
 All have an IDL with language bindings
 Problems solved:
– Performance (processing and bandwidth)
– Type-safety / interop
– Improved QoS built in the protocol
Async / Real-Time APIs…
 API-driven applications often poll for data updates
– Imposes bandwidth + performance overhead
– Insufficient for “real” real-time needs
 Real-Time APIs push data to clients when needed
 WebSockets (W3C)
– Supported in all major browsers
– Full-duplex communication over a single TCP connection
 Webhooks
– User-defined HTTP callbacks
– Supports REST concepts
SDKs vs APIs…
 SDKs greatly ease adoption
– No need to learn / implement underlying protocol
– Native language bindings natural for developers
– API provider has flexibility to change
 SDKs pose great challenges too
– Dependencies
– Versioning
– Support
And of course - the Internet of Things
 IoT devices have limited power and bandwidth
– low complexity and footprint for APIs
– publish/subscribe instead of request/response
– minimized on-the-wire formats
– automatic (re)connection management
 A number of real-time protocols in use
– MQTT, CoAP, AMQP, STOMP, etc
 IoT Brokers connect and integrate multiple devices
So if you’re building APIs,
what should be keeping you
up at night?
API Hierarchy of Needs
Who is going to use your API?
User Experience
=
Developer Experience
Align with your users technology
 SOAP / REST / Corba / etc…
 XML / JSON / YAML / etc…
 Honor QoS and Security
Help users understand your API
vs
Help users consume your API
 Code samples in common languages
 Native SDKs
 Provide sandbox environments
 Automated & instant API access for evaluation
Provide API Metadata
 Validation
 Code Generation
 Coverage
 Understanding
 Simulation
wsdl, swagger,
wadl, hal, json
schema, apiary.io,
xml schema, ws-*,
apiary, api-docs,
raml, iodocs, etc
Align with your users domain
 Process / Workflow
 Nomenclature
 Related APIs
A 3:30:3 Litmus test for APIs
 3 Minutes to understand what an API does
 30 seconds to sign up
 3 minutes to the first request
(Ori Pekelman)
Recommendations…
API First
 APIs are at the heart of
– Mobile Strategies
– Web Strategies
– Partner / Integration Strategies
– Developer / Community Strategies
– Cloud / Infrastructure Strategies
 APIs should be treated as a first-level citizen -
not as an after sight
Technology & Implementation
 Avoid (REST) religion
 Choose what’s best for you and your users
 Understand the importance of DX – both
internally and externally
 Use your public APIs internally!
And please…
Love your APIs – and they’ll love you back!
Thanks!
 @olensmar
 ole.lensmar@smartbear.com

Contenu connexe

Tendances

All Things API Presentation - Gordon Weakleim [HomeAway]
All Things API Presentation - Gordon Weakleim [HomeAway]All Things API Presentation - Gordon Weakleim [HomeAway]
All Things API Presentation - Gordon Weakleim [HomeAway]Cloud Elements
 
The API Facade Pattern: Common Patterns - Episode 2
The API Facade Pattern: Common Patterns - Episode 2The API Facade Pattern: Common Patterns - Episode 2
The API Facade Pattern: Common Patterns - Episode 2Apigee | Google Cloud
 
Connect js nodejs_api_shubhra
Connect js nodejs_api_shubhraConnect js nodejs_api_shubhra
Connect js nodejs_api_shubhraShubhra Kar
 
Triangle Node Meetup : APIs in Minutes with Node.js
Triangle Node Meetup :  APIs in Minutes with Node.jsTriangle Node Meetup :  APIs in Minutes with Node.js
Triangle Node Meetup : APIs in Minutes with Node.jsShubhra Kar
 
LAJUG Napster REST API
LAJUG Napster REST APILAJUG Napster REST API
LAJUG Napster REST APIstephenbhadran
 
API Docs Made Right / RAML - Swagger rant
API Docs Made Right / RAML - Swagger rantAPI Docs Made Right / RAML - Swagger rant
API Docs Made Right / RAML - Swagger rantVladimir Shulyak
 
The API Facade Pattern: People - Episode 4
The API Facade Pattern: People - Episode 4The API Facade Pattern: People - Episode 4
The API Facade Pattern: People - Episode 4Apigee | Google Cloud
 
Toronto node js_meetup
Toronto node js_meetupToronto node js_meetup
Toronto node js_meetupShubhra Kar
 
API Description Languages
API Description LanguagesAPI Description Languages
API Description LanguagesAkana
 
OpenSource Node.js API Framework and Server for Enterprise
OpenSource Node.js API Framework and Server for EnterpriseOpenSource Node.js API Framework and Server for Enterprise
OpenSource Node.js API Framework and Server for EnterpriseShubhra Kar
 
The liferay case: lessons learned evolving from RPC to Hypermedia REST APIs
The liferay case: lessons learned evolving from RPC to Hypermedia REST APIsThe liferay case: lessons learned evolving from RPC to Hypermedia REST APIs
The liferay case: lessons learned evolving from RPC to Hypermedia REST APIsJorge Ferrer
 
API Athens Meetup - API standards 25-6-2014
API Athens Meetup - API standards   25-6-2014API Athens Meetup - API standards   25-6-2014
API Athens Meetup - API standards 25-6-2014Michael Petychakis
 
The API Facade Pattern: Overview - Episode 1
The API Facade Pattern: Overview - Episode 1The API Facade Pattern: Overview - Episode 1
The API Facade Pattern: Overview - Episode 1Apigee | Google Cloud
 
API Description Languages: Which is the Right One for Me?
API Description Languages: Which is the Right One for Me?API Description Languages: Which is the Right One for Me?
API Description Languages: Which is the Right One for Me?Akana
 
The API Facade Pattern: Technology - Episode 3
The API Facade Pattern: Technology - Episode 3The API Facade Pattern: Technology - Episode 3
The API Facade Pattern: Technology - Episode 3Apigee | Google Cloud
 
Visbility at the Edge - Deep Insights from Your API
 Visbility at the Edge - Deep Insights from Your API Visbility at the Edge - Deep Insights from Your API
Visbility at the Edge - Deep Insights from Your APIApigee | Google Cloud
 
Essential API Facade Patterns: Session Management (Episode 2)
Essential API Facade Patterns: Session Management (Episode 2)Essential API Facade Patterns: Session Management (Episode 2)
Essential API Facade Patterns: Session Management (Episode 2)Apigee | Google Cloud
 
Creating Web Services with Zend Framework - Matthew Turland
Creating Web Services with Zend Framework - Matthew TurlandCreating Web Services with Zend Framework - Matthew Turland
Creating Web Services with Zend Framework - Matthew TurlandMatthew Turland
 
What’s behind a high quality web API? Ensure your APIs are more than just a ...
What’s behind a high quality web API? Ensure your APIs are more than just a ...What’s behind a high quality web API? Ensure your APIs are more than just a ...
What’s behind a high quality web API? Ensure your APIs are more than just a ...Kim Clark
 

Tendances (20)

All Things API Presentation - Gordon Weakleim [HomeAway]
All Things API Presentation - Gordon Weakleim [HomeAway]All Things API Presentation - Gordon Weakleim [HomeAway]
All Things API Presentation - Gordon Weakleim [HomeAway]
 
The API Facade Pattern: Common Patterns - Episode 2
The API Facade Pattern: Common Patterns - Episode 2The API Facade Pattern: Common Patterns - Episode 2
The API Facade Pattern: Common Patterns - Episode 2
 
Connect js nodejs_api_shubhra
Connect js nodejs_api_shubhraConnect js nodejs_api_shubhra
Connect js nodejs_api_shubhra
 
Triangle Node Meetup : APIs in Minutes with Node.js
Triangle Node Meetup :  APIs in Minutes with Node.jsTriangle Node Meetup :  APIs in Minutes with Node.js
Triangle Node Meetup : APIs in Minutes with Node.js
 
LAJUG Napster REST API
LAJUG Napster REST APILAJUG Napster REST API
LAJUG Napster REST API
 
API Docs Made Right / RAML - Swagger rant
API Docs Made Right / RAML - Swagger rantAPI Docs Made Right / RAML - Swagger rant
API Docs Made Right / RAML - Swagger rant
 
The API Facade Pattern: People - Episode 4
The API Facade Pattern: People - Episode 4The API Facade Pattern: People - Episode 4
The API Facade Pattern: People - Episode 4
 
Toronto node js_meetup
Toronto node js_meetupToronto node js_meetup
Toronto node js_meetup
 
API Description Languages
API Description LanguagesAPI Description Languages
API Description Languages
 
OpenSource Node.js API Framework and Server for Enterprise
OpenSource Node.js API Framework and Server for EnterpriseOpenSource Node.js API Framework and Server for Enterprise
OpenSource Node.js API Framework and Server for Enterprise
 
The liferay case: lessons learned evolving from RPC to Hypermedia REST APIs
The liferay case: lessons learned evolving from RPC to Hypermedia REST APIsThe liferay case: lessons learned evolving from RPC to Hypermedia REST APIs
The liferay case: lessons learned evolving from RPC to Hypermedia REST APIs
 
API Athens Meetup - API standards 25-6-2014
API Athens Meetup - API standards   25-6-2014API Athens Meetup - API standards   25-6-2014
API Athens Meetup - API standards 25-6-2014
 
The API Facade Pattern: Overview - Episode 1
The API Facade Pattern: Overview - Episode 1The API Facade Pattern: Overview - Episode 1
The API Facade Pattern: Overview - Episode 1
 
API Description Languages: Which is the Right One for Me?
API Description Languages: Which is the Right One for Me?API Description Languages: Which is the Right One for Me?
API Description Languages: Which is the Right One for Me?
 
The API Facade Pattern: Technology - Episode 3
The API Facade Pattern: Technology - Episode 3The API Facade Pattern: Technology - Episode 3
The API Facade Pattern: Technology - Episode 3
 
Visbility at the Edge - Deep Insights from Your API
 Visbility at the Edge - Deep Insights from Your API Visbility at the Edge - Deep Insights from Your API
Visbility at the Edge - Deep Insights from Your API
 
API Design- Best Practices
API Design-   Best PracticesAPI Design-   Best Practices
API Design- Best Practices
 
Essential API Facade Patterns: Session Management (Episode 2)
Essential API Facade Patterns: Session Management (Episode 2)Essential API Facade Patterns: Session Management (Episode 2)
Essential API Facade Patterns: Session Management (Episode 2)
 
Creating Web Services with Zend Framework - Matthew Turland
Creating Web Services with Zend Framework - Matthew TurlandCreating Web Services with Zend Framework - Matthew Turland
Creating Web Services with Zend Framework - Matthew Turland
 
What’s behind a high quality web API? Ensure your APIs are more than just a ...
What’s behind a high quality web API? Ensure your APIs are more than just a ...What’s behind a high quality web API? Ensure your APIs are more than just a ...
What’s behind a high quality web API? Ensure your APIs are more than just a ...
 

Similaire à Past, Present and Future of APIs of Mobile and Web Apps

Seattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js WorkshopSeattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js WorkshopJimmy Guerrero
 
Design & Deploy a data-driven Web API in 2 hours
Design & Deploy a data-driven Web API in 2 hoursDesign & Deploy a data-driven Web API in 2 hours
Design & Deploy a data-driven Web API in 2 hoursRestlet
 
Getting Started with the Node.js LoopBack APi Framework
Getting Started with the Node.js LoopBack APi FrameworkGetting Started with the Node.js LoopBack APi Framework
Getting Started with the Node.js LoopBack APi FrameworkJimmy Guerrero
 
PHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the foolPHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the foolAlessandro Cinelli (cirpo)
 
Web Development Environments: Choose the best or go with the rest
Web Development Environments:  Choose the best or go with the restWeb Development Environments:  Choose the best or go with the rest
Web Development Environments: Choose the best or go with the restgeorge.james
 
Ibm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshopIbm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshopShubhra Kar
 
APIdays San Francisco, 06/22/2013
APIdays San Francisco, 06/22/2013APIdays San Francisco, 06/22/2013
APIdays San Francisco, 06/22/2013Jerome Louvel
 
From Web APIs to Cross-Device Web Sites
From Web APIs to Cross-Device Web SitesFrom Web APIs to Cross-Device Web Sites
From Web APIs to Cross-Device Web SitesRestlet
 
Web technologies lesson 1
Web technologies   lesson 1Web technologies   lesson 1
Web technologies lesson 1nhepner
 
SOAP--Simple Object Access Protocol
SOAP--Simple Object Access ProtocolSOAP--Simple Object Access Protocol
SOAP--Simple Object Access ProtocolMasud Rahman
 
Role of Rest vs. Web Services and EI
Role of Rest vs. Web Services and EIRole of Rest vs. Web Services and EI
Role of Rest vs. Web Services and EIWSO2
 
Web API or WCF - An Architectural Comparison
Web API or WCF - An Architectural ComparisonWeb API or WCF - An Architectural Comparison
Web API or WCF - An Architectural ComparisonAdnan Masood
 
PHP is the king, nodejs is the prince and Python is the fool - Alessandro Cin...
PHP is the king, nodejs is the prince and Python is the fool - Alessandro Cin...PHP is the king, nodejs is the prince and Python is the fool - Alessandro Cin...
PHP is the king, nodejs is the prince and Python is the fool - Alessandro Cin...Codemotion
 
PHP is the King, nodejs the prince and python the fool
PHP is the King, nodejs the prince and python the foolPHP is the King, nodejs the prince and python the fool
PHP is the King, nodejs the prince and python the foolAlessandro Cinelli (cirpo)
 
Mainframe Architecture & Product Overview
Mainframe Architecture & Product OverviewMainframe Architecture & Product Overview
Mainframe Architecture & Product Overviewabhi1112
 
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignalBuilding modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignalAlessandro Pilotti
 

Similaire à Past, Present and Future of APIs of Mobile and Web Apps (20)

Seattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js WorkshopSeattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js Workshop
 
soap toolkit
soap toolkitsoap toolkit
soap toolkit
 
Design & Deploy a data-driven Web API in 2 hours
Design & Deploy a data-driven Web API in 2 hoursDesign & Deploy a data-driven Web API in 2 hours
Design & Deploy a data-driven Web API in 2 hours
 
Getting Started with the Node.js LoopBack APi Framework
Getting Started with the Node.js LoopBack APi FrameworkGetting Started with the Node.js LoopBack APi Framework
Getting Started with the Node.js LoopBack APi Framework
 
PHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the foolPHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the fool
 
Web Development Environments: Choose the best or go with the rest
Web Development Environments:  Choose the best or go with the restWeb Development Environments:  Choose the best or go with the rest
Web Development Environments: Choose the best or go with the rest
 
Ibm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshopIbm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshop
 
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
 
APIdays San Francisco, 06/22/2013
APIdays San Francisco, 06/22/2013APIdays San Francisco, 06/22/2013
APIdays San Francisco, 06/22/2013
 
From Web APIs to Cross-Device Web Sites
From Web APIs to Cross-Device Web SitesFrom Web APIs to Cross-Device Web Sites
From Web APIs to Cross-Device Web Sites
 
Web technologies lesson 1
Web technologies   lesson 1Web technologies   lesson 1
Web technologies lesson 1
 
SOAP--Simple Object Access Protocol
SOAP--Simple Object Access ProtocolSOAP--Simple Object Access Protocol
SOAP--Simple Object Access Protocol
 
Role of Rest vs. Web Services and EI
Role of Rest vs. Web Services and EIRole of Rest vs. Web Services and EI
Role of Rest vs. Web Services and EI
 
Web Topics
Web TopicsWeb Topics
Web Topics
 
Web API or WCF - An Architectural Comparison
Web API or WCF - An Architectural ComparisonWeb API or WCF - An Architectural Comparison
Web API or WCF - An Architectural Comparison
 
PHP is the king, nodejs is the prince and Python is the fool - Alessandro Cin...
PHP is the king, nodejs is the prince and Python is the fool - Alessandro Cin...PHP is the king, nodejs is the prince and Python is the fool - Alessandro Cin...
PHP is the king, nodejs is the prince and Python is the fool - Alessandro Cin...
 
PHP is the King, nodejs the prince and python the fool
PHP is the King, nodejs the prince and python the foolPHP is the King, nodejs the prince and python the fool
PHP is the King, nodejs the prince and python the fool
 
Mainframe Architecture & Product Overview
Mainframe Architecture & Product OverviewMainframe Architecture & Product Overview
Mainframe Architecture & Product Overview
 
Cs2305 nol
Cs2305 nolCs2305 nol
Cs2305 nol
 
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignalBuilding modern web sites with ASP .Net Web API, WebSockets and RSignal
Building modern web sites with ASP .Net Web API, WebSockets and RSignal
 

Plus de SmartBear

Enforcing Your Organization's API Design Standards with SwaggerHub
Enforcing Your Organization's API Design Standards with SwaggerHubEnforcing Your Organization's API Design Standards with SwaggerHub
Enforcing Your Organization's API Design Standards with SwaggerHubSmartBear
 
Introducing OpenAPI Version 3.1
Introducing OpenAPI Version 3.1Introducing OpenAPI Version 3.1
Introducing OpenAPI Version 3.1SmartBear
 
IATA Open Air: How API Standardization Enables Innovation in the Airline Indu...
IATA Open Air: How API Standardization Enables Innovation in the Airline Indu...IATA Open Air: How API Standardization Enables Innovation in the Airline Indu...
IATA Open Air: How API Standardization Enables Innovation in the Airline Indu...SmartBear
 
The State of API 2020 Webinar – Exploring Trends, Tools & Takeaways to Drive ...
The State of API 2020 Webinar – Exploring Trends, Tools & Takeaways to Drive ...The State of API 2020 Webinar – Exploring Trends, Tools & Takeaways to Drive ...
The State of API 2020 Webinar – Exploring Trends, Tools & Takeaways to Drive ...SmartBear
 
How LISI Automotive Accelerated Application Delivery with SwaggerHub
How LISI Automotive Accelerated Application Delivery with SwaggerHubHow LISI Automotive Accelerated Application Delivery with SwaggerHub
How LISI Automotive Accelerated Application Delivery with SwaggerHubSmartBear
 
Standardising APIs: Powering the Platform Economy in Financial Services
Standardising APIs: Powering the Platform Economy in Financial ServicesStandardising APIs: Powering the Platform Economy in Financial Services
Standardising APIs: Powering the Platform Economy in Financial ServicesSmartBear
 
Getting Started with API Standardization in SwaggerHub
Getting Started with API Standardization in SwaggerHubGetting Started with API Standardization in SwaggerHub
Getting Started with API Standardization in SwaggerHubSmartBear
 
Adopting a Design-First Approach to API Development with SwaggerHub
Adopting a Design-First Approach to API Development with SwaggerHubAdopting a Design-First Approach to API Development with SwaggerHub
Adopting a Design-First Approach to API Development with SwaggerHubSmartBear
 
Standardizing APIs Across Your Organization with Swagger and OAS | A SmartBea...
Standardizing APIs Across Your Organization with Swagger and OAS | A SmartBea...Standardizing APIs Across Your Organization with Swagger and OAS | A SmartBea...
Standardizing APIs Across Your Organization with Swagger and OAS | A SmartBea...SmartBear
 
Effective API Lifecycle Management
Effective API Lifecycle Management Effective API Lifecycle Management
Effective API Lifecycle Management SmartBear
 
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...SmartBear
 
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...The API Lifecycle Series: Evolving API Development and Testing from Open Sour...
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...SmartBear
 
Artificial intelligence for faster and smarter software testing - Galway Mee...
Artificial intelligence for faster and smarter software testing  - Galway Mee...Artificial intelligence for faster and smarter software testing  - Galway Mee...
Artificial intelligence for faster and smarter software testing - Galway Mee...SmartBear
 
Successfully Implementing BDD in an Agile World
Successfully Implementing BDD in an Agile WorldSuccessfully Implementing BDD in an Agile World
Successfully Implementing BDD in an Agile WorldSmartBear
 
The Best Kept Secrets of Code Review | SmartBear Webinar
The Best Kept Secrets of Code Review | SmartBear WebinarThe Best Kept Secrets of Code Review | SmartBear Webinar
The Best Kept Secrets of Code Review | SmartBear WebinarSmartBear
 
How Capital One Scaled API Design to Deliver New Products Faster
How Capital One Scaled API Design to Deliver New Products FasterHow Capital One Scaled API Design to Deliver New Products Faster
How Capital One Scaled API Design to Deliver New Products FasterSmartBear
 
Testing Without a GUI Using TestComplete
 Testing Without a GUI Using TestComplete Testing Without a GUI Using TestComplete
Testing Without a GUI Using TestCompleteSmartBear
 
Hidden Treasure - TestComplete Script Extensions
Hidden Treasure - TestComplete Script ExtensionsHidden Treasure - TestComplete Script Extensions
Hidden Treasure - TestComplete Script ExtensionsSmartBear
 
How Bdd Can Save Agile
 How Bdd Can Save Agile How Bdd Can Save Agile
How Bdd Can Save AgileSmartBear
 
API Automation and TDD to Implement Master Data Survivorship Rules
API Automation and TDD to Implement Master Data Survivorship RulesAPI Automation and TDD to Implement Master Data Survivorship Rules
API Automation and TDD to Implement Master Data Survivorship RulesSmartBear
 

Plus de SmartBear (20)

Enforcing Your Organization's API Design Standards with SwaggerHub
Enforcing Your Organization's API Design Standards with SwaggerHubEnforcing Your Organization's API Design Standards with SwaggerHub
Enforcing Your Organization's API Design Standards with SwaggerHub
 
Introducing OpenAPI Version 3.1
Introducing OpenAPI Version 3.1Introducing OpenAPI Version 3.1
Introducing OpenAPI Version 3.1
 
IATA Open Air: How API Standardization Enables Innovation in the Airline Indu...
IATA Open Air: How API Standardization Enables Innovation in the Airline Indu...IATA Open Air: How API Standardization Enables Innovation in the Airline Indu...
IATA Open Air: How API Standardization Enables Innovation in the Airline Indu...
 
The State of API 2020 Webinar – Exploring Trends, Tools & Takeaways to Drive ...
The State of API 2020 Webinar – Exploring Trends, Tools & Takeaways to Drive ...The State of API 2020 Webinar – Exploring Trends, Tools & Takeaways to Drive ...
The State of API 2020 Webinar – Exploring Trends, Tools & Takeaways to Drive ...
 
How LISI Automotive Accelerated Application Delivery with SwaggerHub
How LISI Automotive Accelerated Application Delivery with SwaggerHubHow LISI Automotive Accelerated Application Delivery with SwaggerHub
How LISI Automotive Accelerated Application Delivery with SwaggerHub
 
Standardising APIs: Powering the Platform Economy in Financial Services
Standardising APIs: Powering the Platform Economy in Financial ServicesStandardising APIs: Powering the Platform Economy in Financial Services
Standardising APIs: Powering the Platform Economy in Financial Services
 
Getting Started with API Standardization in SwaggerHub
Getting Started with API Standardization in SwaggerHubGetting Started with API Standardization in SwaggerHub
Getting Started with API Standardization in SwaggerHub
 
Adopting a Design-First Approach to API Development with SwaggerHub
Adopting a Design-First Approach to API Development with SwaggerHubAdopting a Design-First Approach to API Development with SwaggerHub
Adopting a Design-First Approach to API Development with SwaggerHub
 
Standardizing APIs Across Your Organization with Swagger and OAS | A SmartBea...
Standardizing APIs Across Your Organization with Swagger and OAS | A SmartBea...Standardizing APIs Across Your Organization with Swagger and OAS | A SmartBea...
Standardizing APIs Across Your Organization with Swagger and OAS | A SmartBea...
 
Effective API Lifecycle Management
Effective API Lifecycle Management Effective API Lifecycle Management
Effective API Lifecycle Management
 
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
 
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...The API Lifecycle Series: Evolving API Development and Testing from Open Sour...
The API Lifecycle Series: Evolving API Development and Testing from Open Sour...
 
Artificial intelligence for faster and smarter software testing - Galway Mee...
Artificial intelligence for faster and smarter software testing  - Galway Mee...Artificial intelligence for faster and smarter software testing  - Galway Mee...
Artificial intelligence for faster and smarter software testing - Galway Mee...
 
Successfully Implementing BDD in an Agile World
Successfully Implementing BDD in an Agile WorldSuccessfully Implementing BDD in an Agile World
Successfully Implementing BDD in an Agile World
 
The Best Kept Secrets of Code Review | SmartBear Webinar
The Best Kept Secrets of Code Review | SmartBear WebinarThe Best Kept Secrets of Code Review | SmartBear Webinar
The Best Kept Secrets of Code Review | SmartBear Webinar
 
How Capital One Scaled API Design to Deliver New Products Faster
How Capital One Scaled API Design to Deliver New Products FasterHow Capital One Scaled API Design to Deliver New Products Faster
How Capital One Scaled API Design to Deliver New Products Faster
 
Testing Without a GUI Using TestComplete
 Testing Without a GUI Using TestComplete Testing Without a GUI Using TestComplete
Testing Without a GUI Using TestComplete
 
Hidden Treasure - TestComplete Script Extensions
Hidden Treasure - TestComplete Script ExtensionsHidden Treasure - TestComplete Script Extensions
Hidden Treasure - TestComplete Script Extensions
 
How Bdd Can Save Agile
 How Bdd Can Save Agile How Bdd Can Save Agile
How Bdd Can Save Agile
 
API Automation and TDD to Implement Master Data Survivorship Rules
API Automation and TDD to Implement Master Data Survivorship RulesAPI Automation and TDD to Implement Master Data Survivorship Rules
API Automation and TDD to Implement Master Data Survivorship Rules
 

Dernier

Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
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
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineeringssuserb3a23b
 
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
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
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
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
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
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptrcbcrtm
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 

Dernier (20)

Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
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
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Software Coding for software engineering
Software Coding for software engineeringSoftware Coding for software engineering
Software Coding for software engineering
 
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
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
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...
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
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...
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.ppt
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
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
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 

Past, Present and Future of APIs of Mobile and Web Apps

  • 1. PAST, PRESENT AND FUTURE OF APIS OF MOBILE AND WEB APPS Ole Lensmar – CTO – SmartBear Software
  • 2. Once upon a time…
  • 3. We tried to connect (early 90:ies)  Multiple protocols / initiatives – DCE/RPC (OSF) – CORBA (OMG) – COM / DCOM (Microsoft) – J2EE / RMI (Sun)  They all had their challenges – Proprietary, Complex, Limited, etc.
  • 4. Then - the Internet came along…  HTTP – lightweight “universal” text-based protocol  XML – “lightweight” text markup syntax  “POX” – plain old XML  HTTP+XML became XML-RPC  SOAP (Microsoft) – “Simple Object Access Protocol” – XML-based messaging protocol – transport independent
  • 5. REST arrives – and SOAP evolves  REST was introduced by Roy T. Fielding – “Architectural Styles and the Design of Network-based Software Architectures” (2000)  SOAP 1.1 – WSDL, XML-Schema – W3C recommendation in 2003  WS-I Basic Profile (2004) – Guidelines on how to implement SOAP related-standards – Doc/Literal replaces RPC – Top-down vs Bottom up design
  • 6. … and Web APIs emerge  Salesforce launches XML API (2000) – “Salesforce Automation”  eBay launches their API (2000) – Initially limited to select partners/developers  Social – Del.icio.us (2003) – Flickr (2004) – Facebook, Twitter, Google Maps, etc (2006)  All APIs were central to the reach and success of their providers
  • 7. Web Applications evolve  Web 2.0 Technology Stack – AJAX (Asynchronous JavaScript and XML) – HTML5 / CSS – JSON  Web starts turning into a platform – ProgrammableWeb launches 2005 – API Management (Mashery) – Still mainly XML
  • 8. At the same time - SOAP gets “enterprisy”  QoS specifications – WS-* – WS-Addressing – WS-Security – WS-Reliable Messaging – etc  SOA Architectures become “mainstream”  Limited use of SOAP for public APIs – Difficult to consume from Web 2.0 stack
  • 9. The client landscape continued to change  Mobile takes the lead with native/hybrid/web applications – Mostly API-driven  Single Page Applications (SPA) – HTML5 – Dynamic UI that pulls all data from backend via APIs  Device proliferation – Android, iOS, Windows Phone, TVs, Consoles, etc.. – APIs enable adoption to new devices
  • 10. APIs fuel cloud and infrastructure  Amazon – S3 – cloud based storage (2006) – EC2 - re-sizable compute capacity (2006) – Both REST APIs that lacked web interfaces for several years!  Twilio – voice and messaging (2007) -> APIs enable a “building-block” approach to applications and architectures
  • 11. APIs at the heart of applications API Web / SPA Mobile Devices Integrations Storage API eCommerce APIMessaging API Compute API Logic
  • 12. And APIs just continue to grow…  SOA architectures are moving to REST from SOAP  API Directories – programmableweb.com – apihub.com – publicapis.com  apicommons.org – Collection of shared API definitions  QoS – OAuth, OpenID Connect, Tokens, etc.
  • 14. 20 years ago ACME Corp (does monolithics)
  • 15. 10 years ago ACME Corp (does SOA) Web app Corp SOA P MQ API RMI
  • 16. And now… Corp Corp ACME Corp (does APIs) Web app Corp App + API API API API Devi ce APP API Devi ce IoT Devi ce IoT Devi ce API API
  • 17. API Oriented Architecture  Key ingredients in a distributed application architecture can be consumed / provided via APIs – Storage – Messaging – eCommerce – Virtualization – Compute / Provisioning – Etc..  Focus on core business
  • 18. Let’s back up a little…
  • 19. What is REST?  REST is an architectural style – not a technology!  Resources are identified with URIs – /users/12343/address – /cities/boston/hotels?area=downtown  HTTP Verbs are used for actions – GET – retrieve resource representation(s) – POST – create resource(s) at URI (not idempotent) – PUT – replace resources identified by URI (idempotent) – DELETE – delete specified resource(s) – PATCH – update specified resource  Representations and Content-types control semantics
  • 20. Hypermedia APIs  HATEOAS – Hypermedia As The Engine Of Application State  Embed links to applicable actions in REST responses – clients shouldn’t need to know in advance what can be done next  Pros – Designed for scale – Change and Context tolerant – Allows “discovery” of APIs  Cons – Hypermedia is a “human” concept - client logic can get complex – Requires aggressive caching for performance
  • 25. REST API Descriptions  API metadata can be used for – documentation, – validation + testing – code-generation  Swagger - code oriented (bottom-up) – large community + great tools for code generation  RAML, API-Blueprint - design-oriented (top-down) – great authoring tools  WADL - inspired by WSDL – never caught on
  • 28. Looking ahead – REST faces some challenges…
  • 29. Experience APIs  Model APIs after user experience – not resources  NetFlix – 800+ devices / homescreens – Each homescreen made multiple REST calls – doesn’t scale – Solution – build one API call for each device; • /api/homescreen/ps4  Orchestrate / Aggregate needed internal APIs on the server
  • 30. Binary Protocols  Several CORBA-like alternative – Thrift (Facebook) – Protobuf (Google) – Avro (Apache/Hadoop)  All have an IDL with language bindings  Problems solved: – Performance (processing and bandwidth) – Type-safety / interop – Improved QoS built in the protocol
  • 31. Async / Real-Time APIs…  API-driven applications often poll for data updates – Imposes bandwidth + performance overhead – Insufficient for “real” real-time needs  Real-Time APIs push data to clients when needed  WebSockets (W3C) – Supported in all major browsers – Full-duplex communication over a single TCP connection  Webhooks – User-defined HTTP callbacks – Supports REST concepts
  • 32. SDKs vs APIs…  SDKs greatly ease adoption – No need to learn / implement underlying protocol – Native language bindings natural for developers – API provider has flexibility to change  SDKs pose great challenges too – Dependencies – Versioning – Support
  • 33. And of course - the Internet of Things  IoT devices have limited power and bandwidth – low complexity and footprint for APIs – publish/subscribe instead of request/response – minimized on-the-wire formats – automatic (re)connection management  A number of real-time protocols in use – MQTT, CoAP, AMQP, STOMP, etc  IoT Brokers connect and integrate multiple devices
  • 34. So if you’re building APIs, what should be keeping you up at night?
  • 36. Who is going to use your API?
  • 38. Align with your users technology  SOAP / REST / Corba / etc…  XML / JSON / YAML / etc…  Honor QoS and Security
  • 39. Help users understand your API vs
  • 40. Help users consume your API  Code samples in common languages  Native SDKs  Provide sandbox environments  Automated & instant API access for evaluation
  • 41. Provide API Metadata  Validation  Code Generation  Coverage  Understanding  Simulation wsdl, swagger, wadl, hal, json schema, apiary.io, xml schema, ws-*, apiary, api-docs, raml, iodocs, etc
  • 42. Align with your users domain  Process / Workflow  Nomenclature  Related APIs
  • 43. A 3:30:3 Litmus test for APIs  3 Minutes to understand what an API does  30 seconds to sign up  3 minutes to the first request (Ori Pekelman)
  • 45. API First  APIs are at the heart of – Mobile Strategies – Web Strategies – Partner / Integration Strategies – Developer / Community Strategies – Cloud / Infrastructure Strategies  APIs should be treated as a first-level citizen - not as an after sight
  • 46. Technology & Implementation  Avoid (REST) religion  Choose what’s best for you and your users  Understand the importance of DX – both internally and externally  Use your public APIs internally!
  • 47. And please… Love your APIs – and they’ll love you back!