SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
Zeb Mahmood
@zebonic
Alexander Khimich
in/alexanderkhimich
Assumption: This audience understands what’s an API
What do we mean by Enterprise APIs?
Similarities with Public API
 More ‘business’ will be conducted over API than UI
 Security is critical. DDoS attack and un-authorized access are real threats
 Mutations of your application will evolve via its API
 Developers don’t like to read documentation
 You have competition
Internal API
Public API
Private API
Darwin’s theory of natural selection
Evolution of Life:
“Natural selection is a process by which animals and plants
with traits considered desirable by nature
are systematically favored.
Natural selection is thus the key mechanism of evolution for life.”
Darwin’s theory of natural selection
Evolution of Life Applications:
“Natural selection API is a process means by which animals applications and plants
with traits considered desirable by nature developers
are systematically favored.
Natural selection API is thus the key mechanism of evolution for life applications.”
Typical drivers for Enterprise APIs
 Pluggable architecture. Reduce time-to-market. Build fine grain
application UI. For everything else, expose API.
 Monetization. Data is king. Expose your app’s data via API.
 Modernization. Days of file transfers and direct database are over.
The ‘textbook’ recommendations for APIs
 API first
 Single version of APIs
 Always use the right verb
 SOAP/XML is history. Always use REST/JSON
The ‘textbook’ recommendations for APIs
 API first - However, most APIs are retrofitted to old enterprise systems
 Single version of APIs - Hard to avoid while supporting backwards compatibility
 Always use the right verb – But read operations don’t always use POST e.g. search
 SOAP/XML is history. Always use REST/JSON – SOAP is like mainframe. We want to
believe it’s dead. But it’s not!
API first
 Think API first
 Build APIs for internal features
 Eat your own dog food
 Go versioning
API Versioning
 Versioning of URL
 Versioning of API Schema
 Versioning of API business logic
 Versioning of tests/automation
 Versioning of Docs
URL versioning and releases
 Recommendation is to increment versions each major release, regardless if there were
changes or not.
 /v1/contact/{id} - Release 4.0
 /v2/contact/{id} - Release 5.0
{
firstName:”Bob”,
lastName:”Smith”,
middleName:”Tony”
}
V2 request
V2 response
{
fullName:”R A Smith”,
confidence: 0.93
}
API Versioning
V1 request
V1 response
{
firstName:”Bob”,
lastName:”Smith”
}
{
fullName:”Robert Smith”
}
API Versioning
V1 request
V1 response
{
firstName:”Bob”,
lastName:”Smith”,
middleName:”Tony”
}
V2 request
V2 response
{
fullName:”R A Smith”,
confidence: 0.93
}
{
firstName:”Bob”,
lastName:”Smith”
}
{
fullName:”Robert Smith”
}
V1 V2 V3 V4
API Versioning - schema - v1
V1 request
{
fullName:”Robert Smith”
}
V1 response
{
firstName:”Bob”,
lastName:”Smith”
}
Rev1 request adapter
Rev1 Request Object
Business Logic
Rev1 Response Object
Rev1 response adapter
Internal Request Object - 3
fields:[Fname, LName, MName]
Internal Response Object - 2 fields:
[fullName, confidence]
API Versioning - schema - v2
V2 request
{
fullName:”R A Smith”,
confidence:0.93
}
V2 response
{
firstName:”Bob”,
lastName:”Smith”,
middleName:”Tony”
}
Rev2 request adapter
Rev2 Request Object
Business Logic
Rev2 Response Object
Rev2 response adapter
Internal Request Object - 3
fields:[Fname, LName, MName]
Internal Response Object - 2 fields:
[fullName, confidence]
API Versioning - schema - v3
V3 request
{
fullName:”R A Smith”,
confidence:0.93
}
V3 response
{
firstName:”Bob”,
lastName:”Smith”,
middleName:”Tony”
}
Rev2 request adapter knows he can
accept v2 and v3
Rev2 Request Object
Business Logic
Rev2 Response Object
Rev2 response adapter knows he can
accept v2 and v3
Internal Request Object - 3
fields:[Fname, LName, MName]
Internal Response Object - 2 fields:
[fullName, confidence]
API Versioning – Business logic
 Factory design pattern. Get version implementation by version number.
 In code, “if” statements based on version execution context.
API Versioning – Testing
 Black box API testing with version respecting. The same test might be applied to
multiple versions if nothing was changed.
 Test1 - v1
 Test2 - v2* (any after v3)
Documentation
It has to be automatic!
To enable automatic documentation “contract first” development model is preferable.
Some documentation standards to consider
WADL
Swagger
RAML
Sandbox
 It’s a must have for any company
 Worth investing in it
 Should have production SLAs
 Should be treated as production
 API design should respect Sandbox
 Must be easy to try and use
 Right data is a must
Product Owner’s role for Enterprise API’s success
 Recruit early adopters e.g. pilot, beta
 Evangelize to sponsors and champions
 Nurture developer community
 Market via how-to videos, 101 tutorials, hackathons, ….
 Monitor API usage

Mais conteúdo relacionado

Mais procurados

NVIDIA vGPU - Introduction to NVIDIA Virtual GPU
NVIDIA vGPU - Introduction to NVIDIA Virtual GPUNVIDIA vGPU - Introduction to NVIDIA Virtual GPU
NVIDIA vGPU - Introduction to NVIDIA Virtual GPULee Bushen
 
Game Development with Unity
Game Development with UnityGame Development with Unity
Game Development with Unitydavidluzgouveia
 
Game Programming 02 - Component-Based Entity Systems
Game Programming 02 - Component-Based Entity SystemsGame Programming 02 - Component-Based Entity Systems
Game Programming 02 - Component-Based Entity SystemsNick Pruehs
 
Artwork Personalization at Netflix Fernando Amat RecSys2018
Artwork Personalization at Netflix Fernando Amat RecSys2018 Artwork Personalization at Netflix Fernando Amat RecSys2018
Artwork Personalization at Netflix Fernando Amat RecSys2018 Fernando Amat
 

Mais procurados (8)

Epic Fails in LiveOps
Epic Fails in LiveOpsEpic Fails in LiveOps
Epic Fails in LiveOps
 
PCI Drivers
PCI DriversPCI Drivers
PCI Drivers
 
NVIDIA vGPU - Introduction to NVIDIA Virtual GPU
NVIDIA vGPU - Introduction to NVIDIA Virtual GPUNVIDIA vGPU - Introduction to NVIDIA Virtual GPU
NVIDIA vGPU - Introduction to NVIDIA Virtual GPU
 
Game Development with Unity
Game Development with UnityGame Development with Unity
Game Development with Unity
 
Game Elements
Game ElementsGame Elements
Game Elements
 
Game Programming 02 - Component-Based Entity Systems
Game Programming 02 - Component-Based Entity SystemsGame Programming 02 - Component-Based Entity Systems
Game Programming 02 - Component-Based Entity Systems
 
Ten page document
Ten page documentTen page document
Ten page document
 
Artwork Personalization at Netflix Fernando Amat RecSys2018
Artwork Personalization at Netflix Fernando Amat RecSys2018 Artwork Personalization at Netflix Fernando Amat RecSys2018
Artwork Personalization at Netflix Fernando Amat RecSys2018
 

Semelhante a API World Conference

Building A Great API - Evan Cooke, Cloudstock, December 2010
Building A Great API - Evan Cooke, Cloudstock, December 2010Building A Great API - Evan Cooke, Cloudstock, December 2010
Building A Great API - Evan Cooke, Cloudstock, December 2010Twilio Inc
 
Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017
Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017
Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017Amazon Web Services
 
FrenchKit: End to End Application Development with Swift
FrenchKit: End to End Application Development with SwiftFrenchKit: End to End Application Development with Swift
FrenchKit: End to End Application Development with SwiftChris Bailey
 
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...apidays
 
Why your next serverless project should use AWS AppSync
Why your next serverless project should use AWS AppSyncWhy your next serverless project should use AWS AppSync
Why your next serverless project should use AWS AppSyncYan Cui
 
API Product Opportunity Responsibility Nicolas Sierro 2015.pptx
API Product Opportunity Responsibility Nicolas Sierro 2015.pptxAPI Product Opportunity Responsibility Nicolas Sierro 2015.pptx
API Product Opportunity Responsibility Nicolas Sierro 2015.pptxBlockchainizator
 
Building a Great Web API - Evan Cooke - QCON 2011
Building a Great Web API - Evan Cooke - QCON 2011Building a Great Web API - Evan Cooke - QCON 2011
Building a Great Web API - Evan Cooke - QCON 2011Twilio Inc
 
Ibm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshopIbm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshopShubhra Kar
 
Creating a World-Class RESTful Web Services API
Creating a World-Class RESTful Web Services APICreating a World-Class RESTful Web Services API
Creating a World-Class RESTful Web Services APIDavid Keener
 
Serverless Beyond Functions - CTO Club Made in JLM
Serverless Beyond Functions - CTO Club Made in JLMServerless Beyond Functions - CTO Club Made in JLM
Serverless Beyond Functions - CTO Club Made in JLMBoaz Ziniman
 
Evaluating and Testing Web APIs
Evaluating and Testing Web APIsEvaluating and Testing Web APIs
Evaluating and Testing Web APIsSmartBear
 
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
 
zendframework2 restful
zendframework2 restfulzendframework2 restful
zendframework2 restfultom_li
 
PeopleSoft: HACK THE Planet^W university
PeopleSoft: HACK THE  Planet^W universityPeopleSoft: HACK THE  Planet^W university
PeopleSoft: HACK THE Planet^W universityDmitry Iudin
 
Streamlined Geek Talk
Streamlined Geek TalkStreamlined Geek Talk
Streamlined Geek TalkSarah Allen
 
More Coverage, Better Diagnostics
More Coverage, Better DiagnosticsMore Coverage, Better Diagnostics
More Coverage, Better DiagnosticsSmartBear
 
Building CI-CD Pipelines for Serverless Applications
Building CI-CD Pipelines for Serverless ApplicationsBuilding CI-CD Pipelines for Serverless Applications
Building CI-CD Pipelines for Serverless ApplicationsAmazon Web Services
 
A great api is hard to find
A great api is hard to findA great api is hard to find
A great api is hard to findDan Diephouse
 

Semelhante a API World Conference (20)

Building A Great API - Evan Cooke, Cloudstock, December 2010
Building A Great API - Evan Cooke, Cloudstock, December 2010Building A Great API - Evan Cooke, Cloudstock, December 2010
Building A Great API - Evan Cooke, Cloudstock, December 2010
 
Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017
Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017
Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017
 
FrenchKit: End to End Application Development with Swift
FrenchKit: End to End Application Development with SwiftFrenchKit: End to End Application Development with Swift
FrenchKit: End to End Application Development with Swift
 
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
 
Why your next serverless project should use AWS AppSync
Why your next serverless project should use AWS AppSyncWhy your next serverless project should use AWS AppSync
Why your next serverless project should use AWS AppSync
 
API Product Opportunity Responsibility Nicolas Sierro 2015.pptx
API Product Opportunity Responsibility Nicolas Sierro 2015.pptxAPI Product Opportunity Responsibility Nicolas Sierro 2015.pptx
API Product Opportunity Responsibility Nicolas Sierro 2015.pptx
 
Building a Great Web API - Evan Cooke - QCON 2011
Building a Great Web API - Evan Cooke - QCON 2011Building a Great Web API - Evan Cooke - QCON 2011
Building a Great Web API - Evan Cooke - QCON 2011
 
Ibm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshopIbm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshop
 
Creating a World-Class RESTful Web Services API
Creating a World-Class RESTful Web Services APICreating a World-Class RESTful Web Services API
Creating a World-Class RESTful Web Services API
 
Serverless Beyond Functions - CTO Club Made in JLM
Serverless Beyond Functions - CTO Club Made in JLMServerless Beyond Functions - CTO Club Made in JLM
Serverless Beyond Functions - CTO Club Made in JLM
 
Evaluating and Testing Web APIs
Evaluating and Testing Web APIsEvaluating and Testing Web APIs
Evaluating and Testing Web APIs
 
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 ...
 
zendframework2 restful
zendframework2 restfulzendframework2 restful
zendframework2 restful
 
Web Dev 21-01-2024.pptx
Web Dev 21-01-2024.pptxWeb Dev 21-01-2024.pptx
Web Dev 21-01-2024.pptx
 
PeopleSoft: HACK THE Planet^W university
PeopleSoft: HACK THE  Planet^W universityPeopleSoft: HACK THE  Planet^W university
PeopleSoft: HACK THE Planet^W university
 
Streamlined Geek Talk
Streamlined Geek TalkStreamlined Geek Talk
Streamlined Geek Talk
 
REST APIs
REST APIsREST APIs
REST APIs
 
More Coverage, Better Diagnostics
More Coverage, Better DiagnosticsMore Coverage, Better Diagnostics
More Coverage, Better Diagnostics
 
Building CI-CD Pipelines for Serverless Applications
Building CI-CD Pipelines for Serverless ApplicationsBuilding CI-CD Pipelines for Serverless Applications
Building CI-CD Pipelines for Serverless Applications
 
A great api is hard to find
A great api is hard to findA great api is hard to find
A great api is hard to find
 

API World Conference

  • 2. Assumption: This audience understands what’s an API
  • 3. What do we mean by Enterprise APIs? Similarities with Public API  More ‘business’ will be conducted over API than UI  Security is critical. DDoS attack and un-authorized access are real threats  Mutations of your application will evolve via its API  Developers don’t like to read documentation  You have competition Internal API Public API Private API
  • 4. Darwin’s theory of natural selection Evolution of Life: “Natural selection is a process by which animals and plants with traits considered desirable by nature are systematically favored. Natural selection is thus the key mechanism of evolution for life.”
  • 5. Darwin’s theory of natural selection Evolution of Life Applications: “Natural selection API is a process means by which animals applications and plants with traits considered desirable by nature developers are systematically favored. Natural selection API is thus the key mechanism of evolution for life applications.”
  • 6. Typical drivers for Enterprise APIs  Pluggable architecture. Reduce time-to-market. Build fine grain application UI. For everything else, expose API.  Monetization. Data is king. Expose your app’s data via API.  Modernization. Days of file transfers and direct database are over.
  • 7. The ‘textbook’ recommendations for APIs  API first  Single version of APIs  Always use the right verb  SOAP/XML is history. Always use REST/JSON
  • 8. The ‘textbook’ recommendations for APIs  API first - However, most APIs are retrofitted to old enterprise systems  Single version of APIs - Hard to avoid while supporting backwards compatibility  Always use the right verb – But read operations don’t always use POST e.g. search  SOAP/XML is history. Always use REST/JSON – SOAP is like mainframe. We want to believe it’s dead. But it’s not!
  • 9. API first  Think API first  Build APIs for internal features  Eat your own dog food  Go versioning
  • 10. API Versioning  Versioning of URL  Versioning of API Schema  Versioning of API business logic  Versioning of tests/automation  Versioning of Docs
  • 11. URL versioning and releases  Recommendation is to increment versions each major release, regardless if there were changes or not.  /v1/contact/{id} - Release 4.0  /v2/contact/{id} - Release 5.0
  • 12. { firstName:”Bob”, lastName:”Smith”, middleName:”Tony” } V2 request V2 response { fullName:”R A Smith”, confidence: 0.93 } API Versioning V1 request V1 response { firstName:”Bob”, lastName:”Smith” } { fullName:”Robert Smith” }
  • 13. API Versioning V1 request V1 response { firstName:”Bob”, lastName:”Smith”, middleName:”Tony” } V2 request V2 response { fullName:”R A Smith”, confidence: 0.93 } { firstName:”Bob”, lastName:”Smith” } { fullName:”Robert Smith” } V1 V2 V3 V4
  • 14. API Versioning - schema - v1 V1 request { fullName:”Robert Smith” } V1 response { firstName:”Bob”, lastName:”Smith” } Rev1 request adapter Rev1 Request Object Business Logic Rev1 Response Object Rev1 response adapter Internal Request Object - 3 fields:[Fname, LName, MName] Internal Response Object - 2 fields: [fullName, confidence]
  • 15. API Versioning - schema - v2 V2 request { fullName:”R A Smith”, confidence:0.93 } V2 response { firstName:”Bob”, lastName:”Smith”, middleName:”Tony” } Rev2 request adapter Rev2 Request Object Business Logic Rev2 Response Object Rev2 response adapter Internal Request Object - 3 fields:[Fname, LName, MName] Internal Response Object - 2 fields: [fullName, confidence]
  • 16. API Versioning - schema - v3 V3 request { fullName:”R A Smith”, confidence:0.93 } V3 response { firstName:”Bob”, lastName:”Smith”, middleName:”Tony” } Rev2 request adapter knows he can accept v2 and v3 Rev2 Request Object Business Logic Rev2 Response Object Rev2 response adapter knows he can accept v2 and v3 Internal Request Object - 3 fields:[Fname, LName, MName] Internal Response Object - 2 fields: [fullName, confidence]
  • 17. API Versioning – Business logic  Factory design pattern. Get version implementation by version number.  In code, “if” statements based on version execution context.
  • 18. API Versioning – Testing  Black box API testing with version respecting. The same test might be applied to multiple versions if nothing was changed.  Test1 - v1  Test2 - v2* (any after v3)
  • 19. Documentation It has to be automatic! To enable automatic documentation “contract first” development model is preferable. Some documentation standards to consider WADL Swagger RAML
  • 20. Sandbox  It’s a must have for any company  Worth investing in it  Should have production SLAs  Should be treated as production  API design should respect Sandbox  Must be easy to try and use  Right data is a must
  • 21. Product Owner’s role for Enterprise API’s success  Recruit early adopters e.g. pilot, beta  Evangelize to sponsors and champions  Nurture developer community  Market via how-to videos, 101 tutorials, hackathons, ….  Monitor API usage