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
530
Hypermedia Affordance
Hypermedia Affordance with BEAR.Sunday
Akihito Koriyama
July 30, 2017
Tweet
Share
More Decks by Akihito Koriyama
See All by Akihito Koriyama
Be Framework: 生命システムとしての存在理解
koriym
0
56
新世界の理解
koriym
0
170
AI Centric
koriym
0
400
app-state-diagram
koriym
0
110
OOP, Double Dispatch and Visitor Pattern
koriym
2
150
BEAR.Sunday 2014-2024
koriym
0
71
イベント駆動コンテンツ (a.k.a Webアプリケーションの効率を再定義するBEAR.Sundayの分散キャッシングフレームワーク)
koriym
4
8.5k
Unconf: RWA読書会
koriym
0
620
REST 6+4の制約
koriym
2
2.8k
Other Decks in Technology
See All in Technology
OPENLOGI Company Profile for engineer
hr01
1
46k
abema-trace-sampling-observability-cost-optimization
tetsuya28
0
350
Okta Identity Governanceで実現する最小権限の原則
demaecan
0
190
【SORACOM UG Explorer 2025】さらなる10年へ ~ SORACOM MVC 発表
soracom
PRO
0
170
IBC 2025 動画技術関連レポート / IBC 2025 Report
cyberagentdevelopers
PRO
2
210
ざっくり学ぶ 『エンジニアリングリーダー 技術組織を育てるリーダーシップと セルフマネジメント』 / 50 minute Engineering Leader
iwashi86
4
2.7k
AI駆動で進める依存ライブラリ更新 ─ Vue プロジェクトの品質向上と開発スピード改善の実践録
sayn0
1
340
可観測性は開発環境から、開発環境にもオブザーバビリティ導入のススメ
layerx
PRO
4
1.7k
知覚とデザイン
rinchoku
1
620
Open Table Format (OTF) が必要になった背景とその機能 (2025.10.28)
simosako
2
400
AI連携の新常識! 話題のMCPをはじめて学ぶ!
makoakiba
0
150
入院医療費算定業務をAIで支援する:包括医療費支払い制度とDPCコーディング (公開版)
hagino3000
0
120
Featured
See All Featured
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
2
110
Documentation Writing (for coders)
carmenintech
75
5.1k
Building an army of robots
kneath
305
46k
Designing for Performance
lara
610
69k
Site-Speed That Sticks
csswizardry
13
930
Measuring & Analyzing Core Web Vitals
bluesmoon
9
640
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6k
Code Review Best Practice
trishagee
72
19k
Code Reviewing Like a Champion
maltzj
526
40k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
130k
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