Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Hypermedia APIs for the Enterprise
Search
API Strategy & Practice Conference
March 05, 2013
Technology
1
310
Hypermedia APIs for the Enterprise
by Jon Moore @ Apistrat NYC (Feb. 2013)
API Strategy & Practice Conference
March 05, 2013
Tweet
Share
More Decks by API Strategy & Practice Conference
See All by API Strategy & Practice Conference
APIStrat 2016 | The end of polling: why and how to transform a REST API into a Data Streaming API (Audrey Neveu)
apistrat
12
300
APIStrat 2016 | OpenAPI Trek: Beyond API Documentation (Arnaud Lauret)
apistrat
5
230
APIStrat 2016 | Flying Dreams: Real-Time Communication from the Edge of Space (Jonathan Barton, Neha Abrol)
apistrat
1
130
APIStrat 2016 | On-prem support? That was so 1982 (Charlie Ozinga)
apistrat
0
110
APIStrat 2016 | Effortless microservices in production with Kubernetes (Ken Wronkiewicz)
apistrat
0
150
Song by Tony Blank
apistrat
0
170
API Lifecycle Manager by Steve Fonseca
apistrat
2
240
APIs In The Enterprise: How Walgreens Formed It's Digital Business by Drew Schweinfurth
apistrat
1
370
Developers Are Difficult by Andrew Noonan
apistrat
0
130
Other Decks in Technology
See All in Technology
下手な強制、ダメ!絶対! 「ガードレール」を「檻」にさせない"ガバナンス"の取り方とは?
tsukaman
2
450
JTCにおける内製×スクラム開発への挑戦〜内製化率95%達成の舞台裏/JTC's challenge of in-house development with Scrum
aeonpeople
0
230
研究開発と製品開発、両利きのロボティクス
youtalk
1
530
Generative AI Japan 第一回生成AI実践研究会「AI駆動開発の現在地──ブレイクスルーの鍵を握るのはデータ領域」
shisyu_gaku
0
270
エラーとアクセシビリティ
schktjm
1
1.3k
共有と分離 - Compose Multiplatform "本番導入" の設計指針
error96num
2
580
初めてAWSを使うときのセキュリティ覚書〜初心者支部編〜
cmusudakeisuke
1
260
【初心者向け】ローカルLLMの色々な動かし方まとめ
aratako
7
3.5k
5年目から始める Vue3 サイト改善 #frontendo
tacck
PRO
3
220
Function Body Macros で、SwiftUI の View に Accessibility Identifier を自動付与する/Function Body Macros: Autogenerate accessibility identifiers for SwiftUI Views
miichan
2
180
新アイテムをどう使っていくか?みんなであーだこーだ言ってみよう / 20250911-rpi-jam-tokyo
akkiesoft
0
280
2つのフロントエンドと状態管理
mixi_engineers
PRO
3
110
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
How to Ace a Technical Interview
jacobian
279
23k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
The Invisible Side of Design
smashingmag
301
51k
KATA
mclloyd
32
14k
Automating Front-end Workflow
addyosmani
1370
200k
Designing for humans not robots
tammielis
253
25k
The Art of Programming - Codeland 2020
erikaheidi
56
13k
Transcript
Hypermedia APIs for the Enterprise Jon Moore (@jon_moore)
Technical Fellow, Chief Engineer
How do you scale a development team?
How do you scale a development team?
Amdahl’s Law hDp://en.wikipedia.org/wiki/File:Amdahl_march_13_2008.jpg (Pkivolowitz at en.wikipedia)
Need to operate independently…
Conway’s Law Melvin E. Conway, “How do commiDees invent?”,
Datama%on, 14(4):28—31, April 1968.
Will tend to build their own widgets…
Loose coupling hDp://www.flickr.com/photos/usnaYonalarchives/3695598804/ (public domain)
Essen@al Components of an API DOMAIN MODEL OPERATIONS &
WORKFLOW INVOCATION MECHANICS
Domain Models TVEpisode TVSeason TVSeries part-‐of-‐season
part-‐of-‐series part-‐of-‐series “The Simpsons” name
Workflow: Client Applica@on State START Search Results
Cart Item Detail Shipping & Billing Payment ConfirmaYon
Mechanics for Transi@ons POST /api/widgets HTTP/1.1 Host: www.example.com Content-Type:
application/json Content-Length: 13 {‘foo’:‘bar’} method URI formaeng of request body
Evolvability: “Must Ignore” hDp://www.flickr.com/photos/johnsnape/4258191545/ by John Snape (CC BY
2.0)
Evolving Models TVEpisode TVSeason TVSeries part-‐of-‐season
part-‐of-‐series part-‐of-‐series “The Simpsons” name Video associated-‐media
Evolving Workflow START Search Results Cart
Item Detail Shipping & Billing Payment ConfirmaYon update qty edit Gii Message submit
What is this mythical content type?
HTML5 Microdata (schema.org) <div itemscope=“1” itemtype=“http://schema.org/TVSeries”> <span itemprop=“name”>The Simpsons</span>
</div>
Link Rela@ons: IoC for Workflow author next prev first
last edit index item search http://example.com/my-rel
Links and Forms: Request Recipes hDp://www.flickr.com/photos/naYonalarchives/4157825846/ (UK NaYonal Archives,
public domain, c. 1624)
• SemanYc markup • RDFa: hDp://www.w3.org/TR/xhtml-‐rdfa-‐primer/ • JSON-‐LD:
hDp://json-‐ld.org/ • Hypermedia controls • CollecYon+JSON: hDp://amundsen.com/media-‐types/collecYon/ • HAL: hDp://stateless.co/hal_specificaYon.html • Siren: hDps://github.com/kevinswiber/siren • Link relaYons • IANA registry: hDp://www.iana.org/assignments/link-‐relaYons/link-‐relaYons.xml • Link header: hDp://tools.ieq.org/html/rfc5988 Related Work
• Enterprises ≈ collecYon of ADs • Independent Evolvability
is the key to scale – Domain model (“where am I?”) – Workflow (“what can I do next?”) – Mechanics (“how do I do it?”) • HTML5 offers an exisYng, pracYcal opYon for building hypermedia APIs • Efforts underway to duplicate this for JSON Conclusions