Web APIs
(exchange of machine-readable, structured data where
client has semantic understanding of the domain)
Slide 5
Slide 5 text
Web ~= HTTP
Slide 6
Slide 6 text
The Past-ish
Slide 7
Slide 7 text
structured; data; definition; RO
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
No content
Slide 10
Slide 10 text
What went wrong?
• “text” originally just ASCII
• POST tunneling
• Simplistic
Slide 11
Slide 11 text
No content
Slide 12
Slide 12 text
No content
Slide 13
Slide 13 text
What went wrong?
• (in the enterprise world) Nothing!!!!!!!1111!111
• POST tunneling
• Way too complex
• Sharing domain dictionaries across
organisations
Slide 14
Slide 14 text
No content
Slide 15
Slide 15 text
No content
Slide 16
Slide 16 text
What went wrong?
• Easy to be done wrong
• Tooling fragmentation
• Be An Architect For This Simple Endpoint™
Slide 17
Slide 17 text
No content
Slide 18
Slide 18 text
No content
Slide 19
Slide 19 text
AJAX/AJAJ
(SPAs are API clients too!)
Slide 20
Slide 20 text
The Present
(based on personal perception)
Slide 21
Slide 21 text
No content
Slide 22
Slide 22 text
The Rise of HTTP
Contracts
Swagger/OAS3, API Blueprint
Slide 23
Slide 23 text
The Fall of HATEOAS
Tooling is not here. Not enough benefits in
affordances vs fixed (URL) contracts
Slide 24
Slide 24 text
RPC reborn
GraphQL & gRPC/protobuf rising
Slide 25
Slide 25 text
No content
Slide 26
Slide 26 text
Client Has The Power
GraphQL, cURL, “old” REST
Slide 27
Slide 27 text
Return of the Binary
HTTP/2-3, ProtoBuf, 0101s are less frowned upon
Slide 28
Slide 28 text
Real-Time Rising
Protocol winner unclear
Slide 29
Slide 29 text
No content
Slide 30
Slide 30 text
The Future
(Questions)
Slide 31
Slide 31 text
Client generalisation
Will we break out of domain-specific clients?
Slide 32
Slide 32 text
Shared semantic/
domain model
It (almost always) failed. Will we succeed?
Slide 33
Slide 33 text
IoT pressure
Scaling clients that can’t break, on low-power
devices. Autonomy?
Slide 34
Slide 34 text
ML usefullness
Will ML be usable for protocol programming?
Slide 35
Slide 35 text
Internal & External
API unification
Currently rarely same because of different contracts
Slide 36
Slide 36 text
@almadcz
http://www.almad.net
Thank You
@apiaryio
https://apiary.io/
Slide 37
Slide 37 text
Credits
Closed eyes seagull: Photo Credit: marfis75
Flickr via Compfightcc
Disaster Girl by Dave Roth, January 2004, CC BY-NC https://www.flickr.com/photos/travelingroths/2518727675/
Preacher: Photo Credit: redroofmontreal
Flickr via Compfightcc
tester: Photo Credit: wocintechchat.com
Flickr via Compfightcc
devil: Photo Credit: H.KoPP Flickr via Compfightstrudelt Flickr via
Compfightcc
CommitStrip: https://www.commitstrip.com/en/2018/11/15/http-3/