Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Effective API Governance: Lessons Learnt
Alvaro Navarro
October 10, 2019
Programming
0
2.7k
Effective API Governance: Lessons Learnt
Talk delivered at API the Docs Amsterdam 2019
Alvaro Navarro
October 10, 2019
Tweet
Share
More Decks by Alvaro Navarro
See All by Alvaro Navarro
Build your first Spotify App
alnacle
0
2
How to use your API Gateway as Developer Relations Tool
alnacle
0
27
Building awesome SDKs for your APIs: Best Practices
alnacle
0
12
DevRel as Professional Career
alnacle
0
110
Building a partnership that scales through APIs
alnacle
0
56
The Journey of an OpenAPI platform
alnacle
0
52
Delivering great Developer Experience with Apigee
alnacle
0
71
Amadeus and APIs
alnacle
1
21
Quo Vadis, Libre Software? A look into Debian's past to see what the future will bring
alnacle
0
8
Other Decks in Programming
See All in Programming
Lancersをコンテナへ本番移行する取り組み
rvirus0817
1
320
heyにおけるCI/CDの現状と課題
fufuhu
2
560
GDG Seoul IO Extended 2022 - Android Compose
taehwandev
0
300
Baseline Profilesでアプリのパフォーマンスを向上させる / Improve app performance with Baseline Profiles
numeroanddev
0
250
「混ぜるな危険」を推進する設計
minodriven
4
860
Node.jsデザインパターンを読んで
mmmommm
0
2.6k
[DevTrends - Jun/2022] Arquitetura baseada em eventos
camilacampos
0
150
模組化的Swift架構(二) DDD速成
haifengkao
0
390
Android スキルセットをフル活用して始めるスマートテレビアプリ開発
satsukies
1
190
Independently together: better developer experience & App performance
bcinarli
0
180
Terraform Plan/Apply結果の自動通知
ymmy02
0
280
Deep Dive Into Google Zanzibar and its Concepts for Authorization Scenarios
dschenkelman
1
130
Featured
See All Featured
The Language of Interfaces
destraynor
148
20k
Ruby is Unlike a Banana
tanoku
91
9.2k
JazzCon 2018 Closing Keynote - Leadership for the Reluctant Leader
reverentgeek
172
8.4k
BBQ
matthewcrist
74
7.9k
The Illustrated Children's Guide to Kubernetes
chrisshort
15
36k
10 Git Anti Patterns You Should be Aware of
lemiorhan
638
52k
For a Future-Friendly Web
brad_frost
166
7.4k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
237
19k
The Cult of Friendly URLs
andyhume
68
4.8k
Docker and Python
trallard
27
1.6k
The World Runs on Bad Software
bkeepers
PRO
57
5.3k
Fontdeck: Realign not Redesign
paulrobertlloyd
73
4.1k
Transcript
© 2016 Amadeus IT Group and its affiliates and subsidiaries
Effective API Governance Lessons Learnt Alvaro Navarro Amsterdam, 10th October 2019
Once upon a time
Trip Purpose Prediction API Once upon a time
Once upon a time Returns the forecast purpose of a
trip Business or Leisure based on a search criteria.
GET /flights/predictions/purpose Once upon a time
origin : MAD destination : AMS departure : 20191012 return
: 20191015 Once upon a time
{ "result": { "prediction" : "BUSINESS", "probability": 0.751 } }
Once upon a time
Accept: application/vnd.amadeus.v1.full+json Once upon a time
Once upon a time
You need your API validated by the API Governance Board!
Once upon a time
Once upon a time
Once upon a time
Once upon a time
Once upon a time
Once upon a time
Hello World @alnacle
Motivation More than 20 years working with APIs ◦ EDIFACT
◦ SOAP/XML ◦ REST/JSON ◦ Protobuf ◦ GraphQL
Motivation Many people designing and implementing APIs
Motivation Difficult to reuse across backends
Motivation We need to regulate this!
What is the API Governance?
What is the API Governance? Community of API Designers and
Developers
What is the API Governance? Owners of guidelines, data dictionaries
and processes
What is the API Governance? Support
In Amadeus we introduced the HAPPY principle
What is the API Governance? Homogeneous
What is the API Governance? Homogeneous Active
What is the API Governance? Homogeneous Active Pragmatic
What is the API Governance? Homogeneous Active Pragmatic Positive
What is the API Governance? Homogeneous Active Pragmatic Positive Young
Why API Governance?
Why API Governance? As API Producer
Why API Governance? Design Guidelines and Standardization
Why API Governance? Design Guidelines and Standardization ❏ Errors ❏
Endpoint/parameters naming ❏ Improvements ❏ Data Dictionaries ❏ Versioning
Why API Governance? Using URLs http://api.amadeus.com/v1/flight-search http://api.amadeus.com/2018/flight-search http://api.amadeus.com/2018/02/flight-search Using HTTP
Header Accept: application/vnd.amadeus.v1 Accept-Version: 1 Using a Query parameter $ curl http://api.amadeus.com/flight-search?version=1
Why API Governance? As API Consumer
Why API Governance? Better API integration and consistency
Why API Governance? import amadeus client = amadeus.Client() response =
client.shopping.flight_destinations.get(origin = 'AMS', maxPrice = '500')
How do we make it work?
How do we make it work? Technical discussions: Decision Logs
How do we make it work? API submissions: Review Cards
How do we make it work?
How do we make it work? Under Construction In Progress
Pending Validated Review Process ( 1 week ) 1 to 4 weeks ❏ Validated Review Card ❏ Documentation ❏ Swagger Designer
Lessons Learnt
Lessons Learnt Tools are your friends! ◦ Designing ◦ Documenting
◦ Testing
Lessons Learnt Be an advocate and spread the word!
Lessons Learnt It's not a control entity ! Democratic approach
when designing APIs
Lessons Learnt It is a place to speak and share
knowledge
Thanks! developers.amadeus.com