Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Hypermedia-Driven RESTful APIs
Search
Christoph Strobl
May 25, 2016
Programming
88
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Hypermedia-Driven RESTful APIs
Christoph Strobl
May 25, 2016
More Decks by Christoph Strobl
See All by Christoph Strobl
Beyond the Magic - Spring Data AOT Repositories
christophstrobl
1
38
Beyond the Magic - Spring Data Ahead of Time Repositories for MongoDB
christophstrobl
0
39
MongoDB for Java Developers: The Ultimate Spring Data MongoDB Starter Kit
christophstrobl
1
120
Spring Data Cookbook
christophstrobl
2
600
No Offset - Pagination with the Seek Method
christophstrobl
0
210
Tech Talk - Persistence with Spring Data
christophstrobl
0
320
A Spring Data’s Guide to Persistence
christophstrobl
0
160
What's new in Spring Data MongoDB
christophstrobl
0
230
Spring Data Moore and Beyond
christophstrobl
0
850
Other Decks in Programming
See All in Programming
LoopHub - ローカルで動く GitHub で、AI と共同開発
jugyo
1
570
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.2k
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
8.4k
新卒PdEのリアル
ryu1013
1
520
iOSDC Japan 2026 - Swiftで作って学ぼう!データベース自作入門
kaseken
2
350
AHC070解法紹介
eijirou
0
130
選挙速報を多くのユーザーへ 届ける Live Activities 設計
hamayokokuririn
0
160
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
390
スマート反転とウェブアクセシビリティ
camiha
0
210
SREの越境 / SRE Collaboration
y0hgi
2
280
Ghostty + Neovimで作る 透明でカッコ良い開発環境
j341nono
0
130
Java 27新機能 / Java 27 new features
kishida
2
170
Featured
See All Featured
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Marketing to machines
jonoalderson
1
5.8k
Raft: Consensus for Rubyists
vanstee
142
7.7k
Designing for Timeless Needs
cassininazir
1
510
Building Applications with DynamoDB
mza
96
7.2k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
340
[RailsConf 2023] Rails as a piece of cake
palkan
59
7k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
420
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.1k
Transcript
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software,
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ > Hypermedia-Driven RESTful APIs > Christoph Strobl | @stroblchristoph > Pivotal Software, Inc.
2
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software,
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ > > REST?
4 POST = Create, GET = Read,… Client-Server, Stateless, Cacheable
> Representational State Transfer > uses: HTTP for CRUD > requires: Architecture Constraints Uniform Interface
5 image source: http://petstore.swagger.io
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software,
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ > > Hypermedia?
Hypermedia Presentation of data and navigation controls! at the same
time
HATEOAS 8 Media Types describe resources. Actions are executed by
following links. Response reflects state. Clients explore the API. Hypermedia as the Engine of Application State
HAL 9 Resource Links Embedded Resource State Name Target Hypertext
Application Language
ALPS 10 Closes the gap between! ! state and transition.
Descriptors semantic data safe GET unsafe POST idempotent PUT/DELTE Application Level Profile Semantics
JSON Schema 11 Describes your JSON data
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software,
Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ > > Demo?
Spring Data REST 13 @SpringBootApplication public class StoreApp { !
public static void main(String[] args) { SpringApplication.run(StoreApp.class, args); } ! interface StoreRepository extends PagingAndSortingRepository<Store, String> { ! ! } } Page<Store> findByAddressLocationNear(Point location, Distance distance, Pageable pageable); @RestResource(rel = "by-location") <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-rest</artifactId>
14 Repository Resource Relation Link IDs URIs @Version ETags @LastModified
Date Last-Modified What it does
Let’s try this local… 15 <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> >
mvn clean spring-boot:run
None
I am completely operational.! ! All my circuits ! are
functioning perfectly. Thank you! image source: HAL 9000 - Space Odyssey wallpaper http://www.wallconvert.com/
Resources (alphabetical) § alps.io/spec/ § json-schema.org § projects.spring.io/spring-boot § projects.spring.io/spring-data
§ stateless.co/hal_specification § swagger.io 18