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
Unleashing Hyperdrive
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Kyle Fuller
April 17, 2015
Technology
4
250
Unleashing Hyperdrive
Unleashing Hyperdrive, a Swift API client utilising Hypermedia and API Blueprint
Kyle Fuller
April 17, 2015
Tweet
Share
More Decks by Kyle Fuller
See All by Kyle Fuller
Design APIs and deliver what you promised
kylef
0
130
Preparing for the future of API Description Languages
kylef
0
110
Resilient API Design
kylef
1
340
Building a Swift Web API and Application Together
kylef
2
2.1k
Testing without Xcode - CMD+U 2016
kylef
0
270
End-to-end: Building a Web Service in Swift (MCE 2016)
kylef
2
490
Designing APIs for Humans - Write the Docs 2016
kylef
0
340
Embracing Change - MBLTDev 2015
kylef
3
690
Practical Declarative Programming (360 iDev 2015)
kylef
3
530
Other Decks in Technology
See All in Technology
モダンUIでフルサーバーレスなAIエージェントをAmplifyとCDKでサクッとデプロイしよう
minorun365
2
130
プロポーザルに込める段取り八分
shoheimitani
0
160
レガシー共有バッチ基盤への挑戦 - SREドリブンなリアーキテクチャリングの取り組み
tatsukoni
0
200
Tebiki Engineering Team Deck
tebiki
0
24k
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3.8k
プロダクト成長を支える開発基盤とスケールに伴う課題
yuu26
3
1.2k
入社1ヶ月でデータパイプライン講座を作った話
waiwai2111
1
220
2026年、サーバーレスの現在地 -「制約と戦う技術」から「当たり前の実行基盤」へ- /serverless2026
slsops
2
200
ZOZOにおけるAI活用の現在 ~開発組織全体での取り組みと試行錯誤~
zozotech
PRO
4
4.8k
AzureでのIaC - Bicep? Terraform? それ早く言ってよ会議
torumakabe
1
170
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
13k
インフラエンジニア必見!Kubernetesを用いたクラウドネイティブ設計ポイント大全
daitak
0
320
Featured
See All Featured
Crafting Experiences
bethany
1
46
The Curse of the Amulet
leimatthew05
1
8.2k
WCS-LA-2024
lcolladotor
0
440
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
400
[SF Ruby Conf 2025] Rails X
palkan
0
740
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
110
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.7k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
63
Skip the Path - Find Your Career Trail
mkilby
0
52
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Making Projects Easy
brettharned
120
6.6k
Transcript
Hyperdrive API Client in Swift
None
Traditionally
"Move fast and break things" Mark Zuckerberg, Facebook
"Each version will remain for at least 2 years from
release." Facebook
None
None
Move Fast, Break Nothing
Designing API by exposing implementation details
API Evolvability
Ability to change implementation details
Learn about controls, relations and transitions at run-time
Adding new features
Remove features
Ability to change implementation details 4 Change fields used in
forms 4 Change validation of attributes in forms 4 Change URIs of resources (/polls/{id} -> / questions/{slug}) 4 Change HTTP methods (PUT -> PATCH) 4 Change the content-type
Teach Clients Semantic meaning of the Domain
Don’t hard-code implementation details
Hyperdrive
hyperdrive(apiary: "pollsapi")
hyperdrive(blueprint: "https://polls.apiblueprint.org/")
hyperdrive(apiary: "pollsapi") { result in // Explore API feature availability
}
hyperdrive.enter("https://polls.apiblueprint.org/") { result in // Explore API feature availability }
Representor
if let questions = representor.links["questions"] { // The API offered
us a link to questions } else { // Gracefully handle when this feature is missing }
hyperdrive.request(questions) { result in }
representor.links
representor.transitions
if let create = representor.transitions["create"] { // API supports creation
} else { // Feature is missing // Let's not show the create button in our UI }
let attributes = [ "question": "Favourite language?", "choices": [ "Swift",
"Ruby", "Python", ] ] hyperdrive.request(create, attributes) { }
create.attributes
None
create.validate(["email": "kyle"]) ❌
create.validate(["email": "
[email protected]
"]) ✅
None
None
Change our API
Demo
Hyperdrive
Hyperdrive β
None
kyle fuller kyle @ apiary.io