View
168
Download
0
Category
Preview:
Citation preview
© 2015 Axway | @gssor
1
A Babel Fish from the Swamp of POX API Days Mediterranea Ross Garrett rgarrett@axway.com @gssor
May 6th, 2015
© 2015 Axway | @gssor
2
A Babel Fish?
© 2015 Axway | @gssor
3
A Babel Fish?
© 2015 Axway | @gssor
4
A Swamp of POX?
h"p://mar)nfowler.com/ar)cles/richardsonMaturityModel.html
© 2015 Axway | @gssor
5
Why are we here?
© 2015 Axway | @gssor
6
The Web
“We propose the implementation of a simple scheme to incorporate several
different servers of machine-stored information already
available.”
- Berners-Lee / Cailliau, 1990
© 2015 Axway | @gssor
7
The Web
“… web of nodes in which the user can browse at will.”
- Berners-Lee / Cailliau, 1990
© 2015 Axway | @gssor
8
HTTP…
© 2015 Axway | @gssor
9
Tell me what HTTP is?
© 2015 Axway | @gssor
10
Tell me what HTTP is?
Hypertext Transfer Protocol
© 2015 Axway | @gssor
11
Tell me what HTTP is?
How-To-Transfer Protocol
????
© 2015 Axway | @gssor
12
HYPERTEXT
© 2015 Axway | @gssor
13
Hypertext
Ted Nelson coins the word “Hypertext in
A File Structure for the Complex, the Changing, and the Indeterminate”
20th National Conference,
New York, Association for Computing Machinery,
1965.
© 2015 Axway | @gssor
14
Hypertext
Hypertext is text which contains links to other texts.
© 2015 Axway | @gssor
15
And by extension…
HyperMedia is a term used for hypertext which is not constrained
to be text
© 2015 Axway | @gssor
16
Consider a Web Application http://www.facebook.com
© 2015 Axway | @gssor
17
The Web is more than just HTTP
© 2015 Axway | @gssor
18
The Web is more than just HTTP
• HTTP • URI • HTML
We need to use ALL of the Web
© 2015 Axway | @gssor
19
But have we forgotten this in a World of APIs?
© 2015 Axway | @gssor
20
How-To-Transfer Protocol
© 2015 Axway | @gssor
21
The Web
© 2015 Axway | @gssor
22
A Reminder
© 2015 Axway | @gssor
23 © 2015 Axway | Confidential 23
From the beginning then…
© 2015 Axway | @gssor
24
The Swamp of POX
h"p://mar)nfowler.com/ar)cles/richardsonMaturityModel.html
© 2015 Axway | @gssor
25
A example POX API
h"p://blog.sgo.to/2014/04/what-‐your-‐api-‐would-‐look-‐like-‐as-‐webpage.html
© 2015 Axway | @gssor
26
Looking at this as a Web Page
h"p://blog.sgo.to/2014/04/what-‐your-‐api-‐would-‐look-‐like-‐as-‐webpage.html
© 2015 Axway | @gssor
27
Looking at this as a Web Page
h"p://blog.sgo.to/2014/04/what-‐your-‐api-‐would-‐look-‐like-‐as-‐webpage.html
© 2015 Axway | @gssor
28
Level 1 - Resources
h"p://mar)nfowler.com/ar)cles/richardsonMaturityModel.html
© 2015 Axway | @gssor
29
An example Level 1 API
h"p://blog.sgo.to/2014/04/what-‐your-‐api-‐would-‐look-‐like-‐as-‐webpage.html
© 2015 Axway | @gssor
30
Looking at this as a Web Page
h"p://blog.sgo.to/2014/04/what-‐your-‐api-‐would-‐look-‐like-‐as-‐webpage.html
© 2015 Axway | @gssor
31
Looking at this as a Web Page
h"p://blog.sgo.to/2014/04/what-‐your-‐api-‐would-‐look-‐like-‐as-‐webpage.html
© 2015 Axway | @gssor
32
Looking at this as a Web Page
h"p://blog.sgo.to/2014/04/what-‐your-‐api-‐would-‐look-‐like-‐as-‐webpage.html
© 2015 Axway | @gssor
33
Looking at this as a Web Page
h"p://blog.sgo.to/2014/04/what-‐your-‐api-‐would-‐look-‐like-‐as-‐webpage.html
© 2015 Axway | @gssor
34
Level 2 - HTTP Verbs
h"p://mar)nfowler.com/ar)cles/richardsonMaturityModel.html
© 2015 Axway | @gssor
35
An example Level 2 API
h"p://blog.sgo.to/2014/04/what-‐your-‐api-‐would-‐look-‐like-‐as-‐webpage.html
© 2015 Axway | @gssor
36
Looking at this as a Web Page
h"p://blog.sgo.to/2014/04/what-‐your-‐api-‐would-‐look-‐like-‐as-‐webpage.html
© 2015 Axway | @gssor
37
Looking at this as a Web Page
h"p://blog.sgo.to/2014/04/what-‐your-‐api-‐would-‐look-‐like-‐as-‐webpage.html
© 2015 Axway | @gssor
38
Level 3 – Hypermedia Controls
h"p://mar)nfowler.com/ar)cles/richardsonMaturityModel.html
© 2015 Axway | @gssor
39
An example Level 3 API
h"p://blog.sgo.to/2014/04/what-‐your-‐api-‐would-‐look-‐like-‐as-‐webpage.html
© 2015 Axway | @gssor
40
Looking at this as a Web Page
h"p://blog.sgo.to/2014/04/what-‐your-‐api-‐would-‐look-‐like-‐as-‐webpage.html
© 2015 Axway | @gssor
41
Looking at this as a Web Page
h"p://blog.sgo.to/2014/04/what-‐your-‐api-‐would-‐look-‐like-‐as-‐webpage.html
© 2015 Axway | @gssor
42
Using ALL of the Web
• Level 1 – tackles the question of handling complexity by using
divide and conquer, breaking a large service endpoint down into multiple resources.
• Level 2 – introduces a standard set of verbs so that we handle
similar situations in the same way, removing unnecessary variation.
• Level 3 – introduces discoverability, providing a way of making
a protocol more self-documenting.
© 2015 Axway | @gssor
43
Points to Note
• XML is not the only way a resource can be represented
• The choice of representation is left to the implementation
• But remember the difference between Hypermedia formats and static formats – HTML vs. TXT
© 2015 Axway | @gssor
44
In Summary
• Following principles of the Web – Scalable – Recoverable – Fault-Tolerable – Secure – Loosely Coupled
These are the same requirements we have for soHware systems
© 2015 Axway | @gssor
45
Level 3 REST supports these requirements by using ALL of the Web
© 2015 Axway | @gssor
46
Thank You!
Ross Garrett rgarrett@axway.com @gssor
Recommended