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 Affordance
Search
Akihito Koriyama
July 30, 2017
Technology
5
440
Hypermedia Affordance
Hypermedia Affordance with BEAR.Sunday
Akihito Koriyama
July 30, 2017
Tweet
Share
More Decks by Akihito Koriyama
See All by Akihito Koriyama
OOP, Double Dispatch and Visitor Pattern
koriym
2
86
BEAR.Sunday 2014-2024
koriym
0
47
イベント駆動コンテンツ (a.k.a Webアプリケーションの効率を再定義するBEAR.Sundayの分散キャッシングフレームワーク)
koriym
4
6.7k
Unconf: RWA読書会
koriym
0
510
REST 6+4の制約
koriym
2
2.6k
RESTful Web API 読書会 #1
koriym
3
280
RESTの力 / The Power of REST
koriym
10
7.3k
全てを結ぶ力 (2019)
koriym
3
810
REST 6+4=9の制約
koriym
3
970
Other Decks in Technology
See All in Technology
あなたの知らないiOS開発の世界
recruitengineers
PRO
3
170
watsonx.ai Dojo 環境準備について
oniak3ibm
PRO
0
230
LLVM/ASMを使った有限体の高速実装
herumi
0
120
フロントエンド・オブザーバビリティを支える要素技術を学ぼう
sadnessojisan
2
180
効果的なオンコール対応と障害対応
ryuichi1208
5
2.9k
Agile in Automotive Industry, puzzles and lights.
hiranabe
3
1.3k
Google CloudのLLM活用の選択肢を広げるVertex AIのパートナーモデル
nayuts
0
130
実務における脅威モデリングを考えよう
nikinusu
0
440
Next.js のページ遷移を全力で止める
ypresto
2
1.3k
事前準備が肝!AI活用のための業務改革
layerx
PRO
1
370
o1のAPIで実験してみたが 制限きつすぎて辛かった話
pharma_x_tech
0
110
とあるOSSを継続可能にするための取り組みについて / OSS Refactoring Process
bun913
1
190
Featured
See All Featured
Gamification - CAS2011
davidbonilla
79
5k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
24
610
Infographics Made Easy
chrislema
239
18k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
How GitHub (no longer) Works
holman
310
140k
GraphQLの誤解/rethinking-graphql
sonatard
65
9.8k
How to train your dragon (web standard)
notwaldorf
85
5.6k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
5
480
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2k
Designing Experiences People Love
moore
138
23k
Code Reviewing Like a Champion
maltzj
517
39k
Transcript
Hypermedia affordance with BEAR.Sunday @koriym 2017
None
IUUQTFOXJLJQFEJBPSHXJLJ"⒎PSEBODF
IUUQFLSJUTKQXQDPOUFOUVQMPBETDPNJDB⒎PSEBODFQEG
None
GET /menu
None
None
no affordance
None
None
rel=“order” !
/order but how ?
OPTIONS /order
None
None
POST /order/?name=latte ☕
None
PUT /order?id=123&extra=shot
None
GET /order?id=123
None
OPTIONS /payment
PUT: the payment should be idempotent
IUUQTXXXJOGPRDPNKQBSUJDMFTXFCCFSSFTUXPSLqPX Resource interface for state machine URI as state "
" "
200 GET /menu 201 POST /order/?name=latte 100 PUT /order/?order_id=1234&extra=shot 200
PUT /payment?order_id&card_num=123&expire=101018 URIs as event source
* CQS * CQRS * Discoverable * Cache * Observe
* Message Driven Development * Micro Service * Event Sourcing * Decoupled Component REST++
Hypermedia API
Hypermedia Driven Development
None
IUUQTXXXXPSHJOUFHSBUJPOXPSLTIPQQIZQFSNFEJBPSJFOUFEEFTJHOQEG
IUUQTXXXJOGPRDPNKQBSUJDMFTXFCCFSSFTUXPSLqPX
None
None
Self-Descriptive API
None
CURIEs (Compact URI) IUUQTFOXJLJQFEJBPSHXJLJ$63*&
None
None
None
IUUQKTPOTDIFNBPSH
backend + front-end UPEPKTPO UPEPTKTPO
None
? REST API
REST != CRUD over HTTP
REST != Return JSON with pretty URI
None
IUUQTXXXJOGPRDPNOFXT$36%3&45
IUUQTUXJUUFSDPNpFMEJOHTUBUVT
None
None
Network affordance
Information (+ affordance) NFOV SFMlPSEFSz
hypermedia affordance SFMlPSEFSz
Internet Programing
= Programing Internet
BEE B⒎PSEBODF