Upload
ca-api-management
View
1.404
Download
0
Tags:
Embed Size (px)
DESCRIPTION
What if you could create an app using an existing library that already understood a hypermedia format? What if you didn’t need to sweat low-level protocol details and could focus on the UI and the object model supplied by the server? What if this was all done via a standardized hypermedia API that could automatically adjust in small ways over time without requiring new client code or redeployment? What is the same library worked with multiple servers? Multiple APIs? Based material from the new book “RESTful Web APIs”, this talk walks you through the creation of a great UI for a Collection+JSON media type API and then shows how minor changes on the server are automatically handled by the client without rewrites or redeploys. The same library can even used for different APIs with the same smooth results. Reusable libraries for hypermedia clients is a reality.
Citation preview
1
Reusable Libraries for Hypermedia Clients
Mike Amundsen,Director of ArchitectureCA / Layer 7 Technologies@mamund
2
Mike Amundsen
Author, Web Architect, Presenter
Building Hypermedia APIs with HTML5 and Node, 2011
RESTful Web APIs (w/ Leonard Richardson), 2013
3
Reusable
4
Reusable Data Models are Hard
5
Reusable UIs are Hard
6
Reusable
What’s left to re-use?
7
Reusable Middleware
8
Reusable Middleware on the Server
Apache/IIS/nodejs
Business Components
Web Services
9
Reusable Middleware on the Server
Most server middleware is focused on “handling data requests”
10
Reusable Middleware on the Client
JQuery
Bootstrap
Emberjs
11
Reusable Middleware on the Client
Most client middleware is focused on “handling user requests”
12
Reusable Middleware on ….
We need middleware focused on “network requests”
13
Network Requests
The data
The actions
The message
14
Reusable Middleware for the Network
15
Reusable Middleware for the Network
Let’s build some reusable middleware for the network.
16
Reusable Middleware for the Network
Let’s build a hypermedia library.
17
Hypermedia Clients
Hypermedia clients are different…
18
Hypermedia Clients are Different
Don’t code the problem, code the message
Don’t memorize details at build time
Recognize them at run time
Design to react, not dictate
19
Process Steps
Select a media type (Collection+JSON)
Create the library (client-side JS)
Build a Client app (Cj Explorer)
20
Select a Media Type
21
Create the library
Learn about RFC2119 words
Implement all the MUSTS
Implement as many SHOULDs as you can
Implement the MAYs, if you are able
22
Hypermedia Libraries
Let’s look at the code…
23
Maintaining Hypermedia Libraries
Similar to SDKs
Language Support
Stay in tune w/ the spec
24
Reusable Libraries for Hypermedia Clients
Lots of media types to support
- HAL
- Cj
- Siren
- JASON-API
- Mason
- UBER
25
Reusable Libraries for Hypermedia Clients
Reusability at the network level
Spec-reading skills
Similar to SDKs
26
Reusable Middleware for the Network
Let’s build hypermedia libraries!
27
Reusable Libraries for Hypermedia Clients
Mike Amundsen,Director of ArchitectureCA / Layer 7 Technologies@mamund