SlideShare une entreprise Scribd logo
1  sur  47
Télécharger pour lire hors ligne
A five-sided prism
polarizing Web API
development
Jerome Louvel
Chief Geek & Founder
@jlouvel
We know
about
APIs!
http://restlet.com
Pink Floyd
Dark side of the moon
DATA
API
PRISM
DRIVEN
TEST
API
prism
Code-first
Fire up IDE
Setup favorite
tech stack
Start coding!
Easy to get
started with for
a developer
@jlouvel 7
Java annotation hell…
Often annotation
heavy in Java:
Annotation driven
development
No code, only
annotations, just the
method signature!
And that’s real life code!
@jlouvel 9
Brittle API contract
Refactoring might
easily break the
implicit contract
@jlouvel 10
Spaghetti coding
Cross-cutting
concerns
intermixed
Mixing URL paths, logging,
business logic, security
constraints, API related
annotations…
Logging, security,
transactions, session
management,
exception handling…
One line of
business logic!
@jlouvel 12
You don’t always have the choice
Inheriting existing code bases, services, Web APIs?
• not a choice, you’ll work code-first!
Mitigation: safe-guards
• derive a contract
• build step to check
contract conformance
An API contract diff
tool would be handy,
any taker?
@jlouvel 13
Textual diff vs semantic diff?
– Renamed path /users/{user_id} into /v1/users/{user_id}
+ Added path /v1/users
Also messages
warning the changes
are backward
incompatible?
@jlouvel 14
Pros and cons
Easy to get
started with for
a developer
Refactoring might
easily break the
implicit contract
Cross-cutting
concerns
intermixed
Often annotation
heavy in Java:
Annotation driven
development
DATA-first
Existing database:
relational,
NoSQL,graph
Data schema:
SQL schema,
IDL,
JSON schema…
Spreadsheet:
CSV, Excel,
Google Sheets
Existing CRUD:
CRUD Web API,
3rd party Web API
Handy to
expose
existing data
@jlouvel 17
Pretty tabular…
Not much
control on the
API contract
@jlouvel 18
Dumb API
Dumb API:
no business
logic out of
the box
@jlouvel 19
Pros and cons
Handy to
expose
existing data
Not much
control on the
API contract
Dumb API: no
business logic
out of the box
Contract-first
@jlouvel 22
Twitter poll
Not statistically
significant :-)
Interesting
feedback!
Contract as
the source
of truth
Also a key
communication
element!
Can derive &
generate
useful artifacts
Client SDKs Server skeletons
Static, dynamic,
live mocks
Test stubs
Sandbox & live
playgrounds
Static
documentation
Documentation
portal
Facilitate
team
collaboration
👨🏾
👩🏼
Backend
team
Frontend
team
Collaborate on
contract
Contract ready,
mock generated
Yay! Shorter time
to market!
Code generation
can overwrite
customization
Favor composition over
inheritance!
@jlouvel 28
Pros and cons
Contract as
the source of
truth
Facilitate
team
collaboration
Can derive &
generate useful
artifacts
Code generation
can overwrite
customization
TEST-first
@jlouvel 30
Test Driven Development
RED
GREENREFACTOR
Behavior driven:
clarifies how the
API is working
Can ensure API
implementation
and behavior
are in sync
Harder to derive
& generate
useful artifacts
Not impossible, but
not available yet
Hard to define
tests without
anything to test
Mitigation:
Solutions with live mocks
can ease authoring tests
for defining the behavior
@jlouvel 35
Pros and cons
Behavior driven:
clarifies how the
API is working
Harder to derive
& generate
useful artifacts
Hard to define
tests without
anything to test
Can ensure API
implementation
and behavior
are in sync
DOC-first
Use case
driven, great for
onboarding
Doesn’t necessarily
generate a useful
contract
Natural
language is
ambiguous
ORANGE
@jlouvel 40
Pros and cons
Use case
driven, great for
onboarding
Doesn’t necessarily
generate a useful
contract
Natural
language is
ambiguous
@jlouvel
Summary
@jlouvel 42
Five-sided prism polarizing APIs development
API
prism
TEST
No good or one way of
tackling Web API
development,
just tradeoffs! Pick your side,
but do it well!
@jlouvel 43
Master API DevOps at our Restlet meetup
Thursday, September 22nd - 7pm at our Palo Alto office
With 2 million developers on the Restlet Platform and decades of experience with API
development, Jerome will quickly catch you up with the latest in API design, testing, and
deployment.
For this hands-on workshop, you will craft your first API with the help of an API guru and the best visual API
designer on the market. You just need to come with your laptop, there’s nothing to install!
Interested? Register by clicking the link in our
pinned tweet. You will receive all the information
required prior to the meetup.
@jlouvel
Thanks for your attention
@jlouvel 45
Image credits
• Pink Floyd’s Dark Side of the Moon prism
https://i.ytimg.com/vi/NJQnzmH6jgc/maxresdefault.jpg
• Thumb-up
https://upload.wikimedia.org/wikipedia/commons/thumb/f/fb/Thumbs_up.svg/2000px-Thumbs_up.svg.png
• Thumb-down
https://upload.wikimedia.org/wikipedia/commons/thumb/b/b8/Thumbs_down.svg/1000px-
Thumbs_down.svg.png
• Engine start
https://www.flickr.com/photos/npobre/2601582256
• Data graph
https://upload.wikimedia.org/wikipedia/commons/9/9b/Social_Network_Analysis_Visualization.png
• Spaghetti
https://upload.wikimedia.org/wikipedia/commons/4/4a/Pollo_funghi_spaghetti_-_Paesano_Restaurant.jpg
• Northern mocking birg
https://upload.wikimedia.org/wikipedia/commons/c/cf/Northern_Mocking_bird_-
_Mimus_polyglottos.JPG
@jlouvel 46
Image credits
• Boarding
https://c2.staticflickr.com/4/3024/2503923533_8381d55537_b.jpg
• Contract
https://pixabay.com/static/uploads/photo/2014/08/26/19/20/document-428333_960_720.jpg
• Orange paint
http://www.publicdomainpictures.net/pictures/20000/velka/painting-wall-11291581001pYx.jpg
• Orange fruit
https://www.flickr.com/photos/manicomi/2260527943
• Handbook
http://www.intexte.net/docenligne/carnet_autie.jpg
• Behavior
http://www.thebluediamondgallery.com/pictures/behavior.jpg
• Orsay Museum clock
https://www.flickr.com/photos/davidden/2320748091
• Factory workers
https://upload.wikimedia.org/wikipedia/commons/0/08/Seagate_Wuxi_China_Factory_Tour.jpg
@jlouvel 47
Image credits
• Hell
https://upload.wikimedia.org/wikipedia/commons/f/f5/An_angel_leading_a_soul_into_hell._Oil_painting_
by_a_followe_Wellcome_L0030887.jpg
• Excel
https://i.ytimg.com/vi/nbYi2x84EW0/maxresdefault.jpg
• Broken glass
https://upload.wikimedia.org/wikipedia/commons/thumb/6/67/Broken_glass.jpg/1280px-Broken_glass.jpg
• Truth
https://pixabay.com/static/uploads/photo/2013/07/25/11/52/truth-166853_960_720.jpg
• Car assembly line
https://upload.wikimedia.org/wikipedia/commons/f/f1/Hyundai_car_assembly_line.jpg
• Team collaboration
https://static.pexels.com/photos/7092/desk-office-hero-workspace.jpg

Contenu connexe

Tendances

Current Testing Challenges Ireland
Current Testing Challenges IrelandCurrent Testing Challenges Ireland
Current Testing Challenges Ireland
David O'Dowd
 
Software Craftsmanship VS Software Engineering
Software Craftsmanship VS Software EngineeringSoftware Craftsmanship VS Software Engineering
Software Craftsmanship VS Software Engineering
Andy Maleh
 

Tendances (20)

JBoss Forge - Breaking new ground in developer productivity
JBoss Forge - Breaking new ground in developer productivityJBoss Forge - Breaking new ground in developer productivity
JBoss Forge - Breaking new ground in developer productivity
 
Let the Elephants Leave the Room: Tips for Making Development Life Leaner by ...
Let the Elephants Leave the Room: Tips for Making Development Life Leaner by ...Let the Elephants Leave the Room: Tips for Making Development Life Leaner by ...
Let the Elephants Leave the Room: Tips for Making Development Life Leaner by ...
 
Advanced Codeless Testing for Web Apps
Advanced Codeless Testing for Web AppsAdvanced Codeless Testing for Web Apps
Advanced Codeless Testing for Web Apps
 
Phonegap presentation
Phonegap presentationPhonegap presentation
Phonegap presentation
 
Current Testing Challenges Ireland
Current Testing Challenges IrelandCurrent Testing Challenges Ireland
Current Testing Challenges Ireland
 
Lean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partnerLean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partner
 
Continuous delivery @CD Summit Stockholm
Continuous delivery @CD Summit StockholmContinuous delivery @CD Summit Stockholm
Continuous delivery @CD Summit Stockholm
 
How to Become a Conference Speaker
How to Become a Conference SpeakerHow to Become a Conference Speaker
How to Become a Conference Speaker
 
Peer Code Review An Agile Process
Peer Code Review An Agile ProcessPeer Code Review An Agile Process
Peer Code Review An Agile Process
 
Continuous delivery from the trenches Redhat Forum Edition
Continuous delivery from the trenches Redhat Forum EditionContinuous delivery from the trenches Redhat Forum Edition
Continuous delivery from the trenches Redhat Forum Edition
 
Code review in practice
Code review in practiceCode review in practice
Code review in practice
 
Continuous delivery of embedded systems embedded meetup
Continuous delivery of embedded systems   embedded meetupContinuous delivery of embedded systems   embedded meetup
Continuous delivery of embedded systems embedded meetup
 
Software Craftsmanship VS Software Engineering
Software Craftsmanship VS Software EngineeringSoftware Craftsmanship VS Software Engineering
Software Craftsmanship VS Software Engineering
 
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...
Developers’ mDay u Banjoj Luci - Milan Popović, PHP Srbija – Testimony (about...
 
Choosing a career goal as an IT graduate
Choosing a career goal as an IT graduateChoosing a career goal as an IT graduate
Choosing a career goal as an IT graduate
 
Agile code quality metrics
Agile code quality metricsAgile code quality metrics
Agile code quality metrics
 
Perfect product architecture in a non-stop start-up
Perfect product architecture in a non-stop start-upPerfect product architecture in a non-stop start-up
Perfect product architecture in a non-stop start-up
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
How to successfully grow a code review culture
How to successfully grow a code review cultureHow to successfully grow a code review culture
How to successfully grow a code review culture
 
Documenting code yapceu2016
Documenting code yapceu2016Documenting code yapceu2016
Documenting code yapceu2016
 

En vedette

Business of APIs Conference 2011 - Twillio
Business of APIs Conference 2011 - TwillioBusiness of APIs Conference 2011 - Twillio
Business of APIs Conference 2011 - Twillio
Mashery
 
John sheehan of twillio gives cloud camp denver lightning talk
John sheehan of twillio gives cloud camp denver lightning talkJohn sheehan of twillio gives cloud camp denver lightning talk
John sheehan of twillio gives cloud camp denver lightning talk
Intel Corporation
 

En vedette (20)

Birds Eye View on API Development - v1.0
Birds Eye View on API Development - v1.0Birds Eye View on API Development - v1.0
Birds Eye View on API Development - v1.0
 
[MBF2] Webinar API Orange Partner #1
[MBF2] Webinar API Orange Partner #1[MBF2] Webinar API Orange Partner #1
[MBF2] Webinar API Orange Partner #1
 
making a place in the API world by Laurent Benveniste at Telecom APIs
making a place in the API world by Laurent Benveniste at Telecom APIsmaking a place in the API world by Laurent Benveniste at Telecom APIs
making a place in the API world by Laurent Benveniste at Telecom APIs
 
Growth Hacking RogerVoice, Olivier Jeannel de Thiersant, RogerVoice
Growth Hacking RogerVoice, Olivier Jeannel de Thiersant, RogerVoiceGrowth Hacking RogerVoice, Olivier Jeannel de Thiersant, RogerVoice
Growth Hacking RogerVoice, Olivier Jeannel de Thiersant, RogerVoice
 
Business of APIs Conference 2011 - Twillio
Business of APIs Conference 2011 - TwillioBusiness of APIs Conference 2011 - Twillio
Business of APIs Conference 2011 - Twillio
 
Orange AMEA APIs presentation for Telecom APIs 2014
Orange AMEA APIs presentation for Telecom APIs 2014Orange AMEA APIs presentation for Telecom APIs 2014
Orange AMEA APIs presentation for Telecom APIs 2014
 
22 Bot Rules
22 Bot Rules22 Bot Rules
22 Bot Rules
 
Telecom API Event (11-13 Nov London) Summary
Telecom API Event (11-13 Nov London) SummaryTelecom API Event (11-13 Nov London) Summary
Telecom API Event (11-13 Nov London) Summary
 
TADSummit Welcome Address, Alan Quayle
TADSummit Welcome Address, Alan QuayleTADSummit Welcome Address, Alan Quayle
TADSummit Welcome Address, Alan Quayle
 
Processes and Telecom APIs
Processes and Telecom APIsProcesses and Telecom APIs
Processes and Telecom APIs
 
Telecom API Event 2014 Summary
Telecom API Event 2014 SummaryTelecom API Event 2014 Summary
Telecom API Event 2014 Summary
 
Battelfield REST, API Development from the trenches
Battelfield REST, API Development from the trenchesBattelfield REST, API Development from the trenches
Battelfield REST, API Development from the trenches
 
Real Time Communication APIs workshop, Elyran Kogan, Liveperson
Real Time Communication APIs workshop, Elyran Kogan, LivepersonReal Time Communication APIs workshop, Elyran Kogan, Liveperson
Real Time Communication APIs workshop, Elyran Kogan, Liveperson
 
immmr – a hybrid operator model, Sebastian Schumann, immmr
immmr – a hybrid operator model, Sebastian Schumann, immmrimmmr – a hybrid operator model, Sebastian Schumann, immmr
immmr – a hybrid operator model, Sebastian Schumann, immmr
 
John sheehan of twillio gives cloud camp denver lightning talk
John sheehan of twillio gives cloud camp denver lightning talkJohn sheehan of twillio gives cloud camp denver lightning talk
John sheehan of twillio gives cloud camp denver lightning talk
 
Rethinking the telecom networks, Patrice Crutel, Cap Gemini
Rethinking the telecom networks, Patrice Crutel, Cap GeminiRethinking the telecom networks, Patrice Crutel, Cap Gemini
Rethinking the telecom networks, Patrice Crutel, Cap Gemini
 
Raml api designer
Raml   api designerRaml   api designer
Raml api designer
 
Managing api development
Managing api developmentManaging api development
Managing api development
 
Telco-grade support for open-source based VAS, Irek Nowak, pro-IDS
Telco-grade support for open-source based VAS, Irek Nowak, pro-IDSTelco-grade support for open-source based VAS, Irek Nowak, pro-IDS
Telco-grade support for open-source based VAS, Irek Nowak, pro-IDS
 
Design API using RAML - basics
Design API using RAML - basicsDesign API using RAML - basics
Design API using RAML - basics
 

Similaire à API World 2016 - A five-sided prism polarizing Web API development

apitestinginiadalahkatalontestingapiapiapiip
apitestinginiadalahkatalontestingapiapiapiipapitestinginiadalahkatalontestingapiapiapiip
apitestinginiadalahkatalontestingapiapiapiip
DikaSwatans
 

Similaire à API World 2016 - A five-sided prism polarizing Web API development (20)

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
 
OpenAPI at Scale
OpenAPI at ScaleOpenAPI at Scale
OpenAPI at Scale
 
Test Driven Design
Test Driven DesignTest Driven Design
Test Driven Design
 
#7 Deep Dive into RAML 1.0 .pptx
#7 Deep Dive into RAML 1.0 .pptx#7 Deep Dive into RAML 1.0 .pptx
#7 Deep Dive into RAML 1.0 .pptx
 
Advanced Cross-Browser Visual Testing with Applitools Eyes and HP LeanFT
Advanced Cross-Browser Visual Testing with Applitools Eyes and HP LeanFTAdvanced Cross-Browser Visual Testing with Applitools Eyes and HP LeanFT
Advanced Cross-Browser Visual Testing with Applitools Eyes and HP LeanFT
 
Paris Web - Javascript as a programming language
Paris Web - Javascript as a programming languageParis Web - Javascript as a programming language
Paris Web - Javascript as a programming language
 
PyCon PL 2014 executable api
PyCon PL 2014   executable apiPyCon PL 2014   executable api
PyCon PL 2014 executable api
 
Open Source Security and ChatGPT-Published.pdf
Open Source Security and ChatGPT-Published.pdfOpen Source Security and ChatGPT-Published.pdf
Open Source Security and ChatGPT-Published.pdf
 
iOSDevUK Conference- DevOps for iOS Apps
iOSDevUK Conference- DevOps for iOS AppsiOSDevUK Conference- DevOps for iOS Apps
iOSDevUK Conference- DevOps for iOS Apps
 
Simplifying the OpenAPI Development Experience
Simplifying the OpenAPI Development Experience Simplifying the OpenAPI Development Experience
Simplifying the OpenAPI Development Experience
 
Top Reasons Why Java Rocks (report preview) - http:0t.ee/java-rocks
Top Reasons Why Java Rocks (report preview) - http:0t.ee/java-rocksTop Reasons Why Java Rocks (report preview) - http:0t.ee/java-rocks
Top Reasons Why Java Rocks (report preview) - http:0t.ee/java-rocks
 
Integration Testing for Polyglot Ecosystems
Integration Testing for Polyglot EcosystemsIntegration Testing for Polyglot Ecosystems
Integration Testing for Polyglot Ecosystems
 
What Web Framework To Use?
What Web Framework To Use?What Web Framework To Use?
What Web Framework To Use?
 
Space Camp June 2022 - API First.pdf
Space Camp June 2022 - API First.pdfSpace Camp June 2022 - API First.pdf
Space Camp June 2022 - API First.pdf
 
Pain Points In API Development? They’re Everywhere
Pain Points In API Development? They’re EverywherePain Points In API Development? They’re Everywhere
Pain Points In API Development? They’re Everywhere
 
ESLint Plugin for UI Tests
ESLint Plugin for UI TestsESLint Plugin for UI Tests
ESLint Plugin for UI Tests
 
2_PDFsam_DevOps.pdf
2_PDFsam_DevOps.pdf2_PDFsam_DevOps.pdf
2_PDFsam_DevOps.pdf
 
apitestinginiadalahkatalontestingapiapiapiip
apitestinginiadalahkatalontestingapiapiapiipapitestinginiadalahkatalontestingapiapiapiip
apitestinginiadalahkatalontestingapiapiapiip
 
API Testing With Katalon Studio
API Testing With Katalon StudioAPI Testing With Katalon Studio
API Testing With Katalon Studio
 
Why your APIs should fly first class
Why your APIs should fly first classWhy your APIs should fly first class
Why your APIs should fly first class
 

Plus de Restlet

Plus de Restlet (20)

APIDays - API Design Workshop
APIDays - API Design WorkshopAPIDays - API Design Workshop
APIDays - API Design Workshop
 
APIdays 2016 - The State of Web API Languages
APIdays 2016  - The State of Web API LanguagesAPIdays 2016  - The State of Web API Languages
APIdays 2016 - The State of Web API Languages
 
APIStrat Open API Workshop
APIStrat Open API WorkshopAPIStrat Open API Workshop
APIStrat Open API Workshop
 
DevOps DDay - Streamline DevOps Workflows With APIs
DevOps DDay - Streamline DevOps Workflows With APIsDevOps DDay - Streamline DevOps Workflows With APIs
DevOps DDay - Streamline DevOps Workflows With APIs
 
Restlet Framework NG
Restlet Framework NGRestlet Framework NG
Restlet Framework NG
 
MuleSoft Connect 2016 - Getting started with RAML using Restlet’s visual desi...
MuleSoft Connect 2016 - Getting started with RAML using Restlet’s visual desi...MuleSoft Connect 2016 - Getting started with RAML using Restlet’s visual desi...
MuleSoft Connect 2016 - Getting started with RAML using Restlet’s visual desi...
 
The never-ending REST API design debate -- Devoxx France 2016
The never-ending REST API design debate -- Devoxx France 2016The never-ending REST API design debate -- Devoxx France 2016
The never-ending REST API design debate -- Devoxx France 2016
 
Public and private APIs: differences and challenges
Public and private APIs: differences and challengesPublic and private APIs: differences and challenges
Public and private APIs: differences and challenges
 
APIdays 2015 - The State of Web API Languages
APIdays 2015 - The State of Web API LanguagesAPIdays 2015 - The State of Web API Languages
APIdays 2015 - The State of Web API Languages
 
The never-ending REST API design debate
The never-ending REST API design debateThe never-ending REST API design debate
The never-ending REST API design debate
 
Take a Groovy REST
Take a Groovy RESTTake a Groovy REST
Take a Groovy REST
 
Cassandra Summit 2015 - Building a multi-tenant API PaaS with DataStax Enterp...
Cassandra Summit 2015 - Building a multi-tenant API PaaS with DataStax Enterp...Cassandra Summit 2015 - Building a multi-tenant API PaaS with DataStax Enterp...
Cassandra Summit 2015 - Building a multi-tenant API PaaS with DataStax Enterp...
 
GlueCon 2015 - Publish your SQL data as web APIs
GlueCon 2015 - Publish your SQL data as web APIsGlueCon 2015 - Publish your SQL data as web APIs
GlueCon 2015 - Publish your SQL data as web APIs
 
GlueCon 2015 - How REST APIs can glue all types of devices together
GlueCon 2015 - How REST APIs can glue all types of devices togetherGlueCon 2015 - How REST APIs can glue all types of devices together
GlueCon 2015 - How REST APIs can glue all types of devices together
 
Transformez vos Google Spreadsheets en API web - DevFest 2014
Transformez vos Google Spreadsheets en API web - DevFest 2014Transformez vos Google Spreadsheets en API web - DevFest 2014
Transformez vos Google Spreadsheets en API web - DevFest 2014
 
APIdays Paris 2014 - Workshop - Craft and Deploy Your API in a Few Clicks Wit...
APIdays Paris 2014 - Workshop - Craft and Deploy Your API in a Few Clicks Wit...APIdays Paris 2014 - Workshop - Craft and Deploy Your API in a Few Clicks Wit...
APIdays Paris 2014 - Workshop - Craft and Deploy Your API in a Few Clicks Wit...
 
APIdays Paris 2014 - The State of Web API Languages
APIdays Paris 2014 - The State of Web API LanguagesAPIdays Paris 2014 - The State of Web API Languages
APIdays Paris 2014 - The State of Web API Languages
 
Defrag 2014 - Blend Web IDEs, Open Source and PaaS to Create and Deploy APIs
Defrag 2014 - Blend Web IDEs, Open Source and PaaS to Create and Deploy APIsDefrag 2014 - Blend Web IDEs, Open Source and PaaS to Create and Deploy APIs
Defrag 2014 - Blend Web IDEs, Open Source and PaaS to Create and Deploy APIs
 
QCon SF 2014 - Create and Deploy APIs using Web IDEs, Open Source Frameworks ...
QCon SF 2014 - Create and Deploy APIs using Web IDEs, Open Source Frameworks ...QCon SF 2014 - Create and Deploy APIs using Web IDEs, Open Source Frameworks ...
QCon SF 2014 - Create and Deploy APIs using Web IDEs, Open Source Frameworks ...
 
APIdays Paris - How to Build Your Web API
APIdays Paris - How to Build Your Web APIAPIdays Paris - How to Build Your Web API
APIdays Paris - How to Build Your Web API
 

Dernier

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

API World 2016 - A five-sided prism polarizing Web API development

  • 1. A five-sided prism polarizing Web API development Jerome Louvel Chief Geek & Founder @jlouvel
  • 3. Pink Floyd Dark side of the moon DATA API PRISM
  • 6. Fire up IDE Setup favorite tech stack Start coding! Easy to get started with for a developer
  • 7. @jlouvel 7 Java annotation hell… Often annotation heavy in Java: Annotation driven development
  • 8. No code, only annotations, just the method signature! And that’s real life code!
  • 9. @jlouvel 9 Brittle API contract Refactoring might easily break the implicit contract
  • 10. @jlouvel 10 Spaghetti coding Cross-cutting concerns intermixed Mixing URL paths, logging, business logic, security constraints, API related annotations…
  • 11. Logging, security, transactions, session management, exception handling… One line of business logic!
  • 12. @jlouvel 12 You don’t always have the choice Inheriting existing code bases, services, Web APIs? • not a choice, you’ll work code-first! Mitigation: safe-guards • derive a contract • build step to check contract conformance An API contract diff tool would be handy, any taker?
  • 13. @jlouvel 13 Textual diff vs semantic diff? – Renamed path /users/{user_id} into /v1/users/{user_id} + Added path /v1/users Also messages warning the changes are backward incompatible?
  • 14. @jlouvel 14 Pros and cons Easy to get started with for a developer Refactoring might easily break the implicit contract Cross-cutting concerns intermixed Often annotation heavy in Java: Annotation driven development
  • 16. Existing database: relational, NoSQL,graph Data schema: SQL schema, IDL, JSON schema… Spreadsheet: CSV, Excel, Google Sheets Existing CRUD: CRUD Web API, 3rd party Web API Handy to expose existing data
  • 17. @jlouvel 17 Pretty tabular… Not much control on the API contract
  • 18. @jlouvel 18 Dumb API Dumb API: no business logic out of the box
  • 19. @jlouvel 19 Pros and cons Handy to expose existing data Not much control on the API contract Dumb API: no business logic out of the box
  • 21.
  • 22. @jlouvel 22 Twitter poll Not statistically significant :-) Interesting feedback!
  • 23. Contract as the source of truth Also a key communication element!
  • 24. Can derive & generate useful artifacts Client SDKs Server skeletons Static, dynamic, live mocks Test stubs Sandbox & live playgrounds Static documentation Documentation portal
  • 27. Code generation can overwrite customization Favor composition over inheritance!
  • 28. @jlouvel 28 Pros and cons Contract as the source of truth Facilitate team collaboration Can derive & generate useful artifacts Code generation can overwrite customization
  • 30. @jlouvel 30 Test Driven Development RED GREENREFACTOR
  • 31. Behavior driven: clarifies how the API is working
  • 32. Can ensure API implementation and behavior are in sync
  • 33. Harder to derive & generate useful artifacts Not impossible, but not available yet
  • 34. Hard to define tests without anything to test Mitigation: Solutions with live mocks can ease authoring tests for defining the behavior
  • 35. @jlouvel 35 Pros and cons Behavior driven: clarifies how the API is working Harder to derive & generate useful artifacts Hard to define tests without anything to test Can ensure API implementation and behavior are in sync
  • 37. Use case driven, great for onboarding
  • 40. @jlouvel 40 Pros and cons Use case driven, great for onboarding Doesn’t necessarily generate a useful contract Natural language is ambiguous
  • 42. @jlouvel 42 Five-sided prism polarizing APIs development API prism TEST No good or one way of tackling Web API development, just tradeoffs! Pick your side, but do it well!
  • 43. @jlouvel 43 Master API DevOps at our Restlet meetup Thursday, September 22nd - 7pm at our Palo Alto office With 2 million developers on the Restlet Platform and decades of experience with API development, Jerome will quickly catch you up with the latest in API design, testing, and deployment. For this hands-on workshop, you will craft your first API with the help of an API guru and the best visual API designer on the market. You just need to come with your laptop, there’s nothing to install! Interested? Register by clicking the link in our pinned tweet. You will receive all the information required prior to the meetup.
  • 45. @jlouvel 45 Image credits • Pink Floyd’s Dark Side of the Moon prism https://i.ytimg.com/vi/NJQnzmH6jgc/maxresdefault.jpg • Thumb-up https://upload.wikimedia.org/wikipedia/commons/thumb/f/fb/Thumbs_up.svg/2000px-Thumbs_up.svg.png • Thumb-down https://upload.wikimedia.org/wikipedia/commons/thumb/b/b8/Thumbs_down.svg/1000px- Thumbs_down.svg.png • Engine start https://www.flickr.com/photos/npobre/2601582256 • Data graph https://upload.wikimedia.org/wikipedia/commons/9/9b/Social_Network_Analysis_Visualization.png • Spaghetti https://upload.wikimedia.org/wikipedia/commons/4/4a/Pollo_funghi_spaghetti_-_Paesano_Restaurant.jpg • Northern mocking birg https://upload.wikimedia.org/wikipedia/commons/c/cf/Northern_Mocking_bird_- _Mimus_polyglottos.JPG
  • 46. @jlouvel 46 Image credits • Boarding https://c2.staticflickr.com/4/3024/2503923533_8381d55537_b.jpg • Contract https://pixabay.com/static/uploads/photo/2014/08/26/19/20/document-428333_960_720.jpg • Orange paint http://www.publicdomainpictures.net/pictures/20000/velka/painting-wall-11291581001pYx.jpg • Orange fruit https://www.flickr.com/photos/manicomi/2260527943 • Handbook http://www.intexte.net/docenligne/carnet_autie.jpg • Behavior http://www.thebluediamondgallery.com/pictures/behavior.jpg • Orsay Museum clock https://www.flickr.com/photos/davidden/2320748091 • Factory workers https://upload.wikimedia.org/wikipedia/commons/0/08/Seagate_Wuxi_China_Factory_Tour.jpg
  • 47. @jlouvel 47 Image credits • Hell https://upload.wikimedia.org/wikipedia/commons/f/f5/An_angel_leading_a_soul_into_hell._Oil_painting_ by_a_followe_Wellcome_L0030887.jpg • Excel https://i.ytimg.com/vi/nbYi2x84EW0/maxresdefault.jpg • Broken glass https://upload.wikimedia.org/wikipedia/commons/thumb/6/67/Broken_glass.jpg/1280px-Broken_glass.jpg • Truth https://pixabay.com/static/uploads/photo/2013/07/25/11/52/truth-166853_960_720.jpg • Car assembly line https://upload.wikimedia.org/wikipedia/commons/f/f1/Hyundai_car_assembly_line.jpg • Team collaboration https://static.pexels.com/photos/7092/desk-office-hero-workspace.jpg