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
390
Hypermedia Affordance
Hypermedia Affordance with BEAR.Sunday
Akihito Koriyama
July 30, 2017
Tweet
Share
More Decks by Akihito Koriyama
See All by Akihito Koriyama
BEAR.Sunday 2014-2024
koriym
0
35
イベント駆動コンテンツ (a.k.a Webアプリケーションの効率を再定義するBEAR.Sundayの分散キャッシングフレームワーク)
koriym
4
5.7k
Unconf: RWA読書会
koriym
0
470
REST 6+4の制約
koriym
2
2.5k
RESTful Web API 読書会 #1
koriym
3
270
RESTの力 / The Power of REST
koriym
10
7k
全てを結ぶ力 (2019)
koriym
3
750
REST 6+4=9の制約
koriym
3
890
OOP
koriym
0
210
Other Decks in Technology
See All in Technology
Python と Snowflake はズッ友だょ!~ Snowflake の Python 関連機能をふりかえる ~
__allllllllez__
1
110
GraphQL 成熟度モデルの紹介と、プロダクトに当てはめた事例 / GraphQL maturity model
mh4gf
7
1.3k
ワールドカフェI /チューターを改良する / World Café I and Improving the Tutors
ks91
PRO
0
120
コンパウンドスタートアップのためのスケーラブルでセキュアなInfrastructure as Codeパイプラインを考える / Scalable and Secure Infrastructure as Code Pipeline for a Compound Startup
yuyatakeyama
4
4.7k
ServiceNow Knowledge 24の歩き方 EYストラテジー・アンド・コンサルティング
manarobot
0
190
サーバー間 GraphQL と webmock-graphql の話 / server-to-server graphql and webmock-graphql
qsona
2
180
継続的な改善 x ⾮連続的な進化
sansantech
PRO
3
150
自己改善からチームを動かす! 「セルフエンジニアリングマネージャー」のすゝめ
shoota
6
340
家族アルバム みてねにおけるGrafana活用術 / Grafana Meetup Japan Vol.1 LT
isaoshimizu
1
480
JSON攻略法.pdf
miyakemito
8
4.9k
プロデザ! BY リクルート vol.18_リクルートのリサーチ実践組織「リサーチブーストコミュニティ」
recruitengineers
PRO
3
280
生産性向上チームの紹介
cybozuinsideout
PRO
1
870
Featured
See All Featured
Bash Introduction
62gerente
604
210k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
20
1.9k
Reflections from 52 weeks, 52 projects
jeffersonlam
345
19k
Writing Fast Ruby
sferik
621
60k
VelocityConf: Rendering Performance Case Studies
addyosmani
320
23k
Embracing the Ebb and Flow
colly
80
4.1k
Become a Pro
speakerdeck
PRO
11
4.5k
Documentation Writing (for coders)
carmenintech
60
3.9k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
2
3.4k
The Cult of Friendly URLs
andyhume
74
5.7k
GitHub's CSS Performance
jonrohan
1025
450k
WebSockets: Embracing the real-time Web
robhawkes
59
7k
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