SlideShare a Scribd company logo
1 of 91
Download to read offline
GregLTurnquist.com/springone2020
Building Flexible APIs
with Spring HATEOAS
September 2–3, 2020
springone.io
1
GregLTurnquist.com/springone2020
Who am I?
GregLTurnquist.com/springone2020
Who am I?
GregLTurnquist.com/springone2020
Who am I?
bit.ly/hacking-with-spring-boot
GregLTurnquist.com/springone2020
Who am I?
bit.ly/hacking-with-spring-boot
● Principal developer on
the Spring team
● Nashville JUG co-founder
● Committer & Project
Lead for several Spring
projects
● YouTube/GregTurnquist
GregLTurnquist.com/springone2020
Let’s talk about…APIs!
GregLTurnquist.com/springone2020
What is an API?
GregLTurnquist.com/springone2020
What is an API?
● Place to get a little JSON/XML/whatever?
GregLTurnquist.com/springone2020
What is an API?
● Place to get a little JSON/XML/whatever?
● Way to interact with the app?
GregLTurnquist.com/springone2020
What is an API?
● Place to get a little JSON/XML/whatever?
● Way to interact with the app?
● Means to extract value from another app to help your own app?
GregLTurnquist.com/springone2020
What is an API?
● Place to get a little JSON/XML/whatever?
● Way to interact with the app?
● Means to extract value from another app to help your own app?
Let’s dig in and discover what it means to have a flexible API!
GregLTurnquist.com/springone2020
Simple API
6
● Spring MVC
● Simple
● Clear separation between layers
GregLTurnquist.com/springone2020
Simple API
6
● Spring MVC
● Simple
● Clear separation between layers
GregLTurnquist.com/springone2020
Simple API
6
● Spring MVC
● Simple
● Clear separation between layers
GregLTurnquist.com/springone2020
Simple API
6
● Spring MVC
● Simple
● Clear separation between layers
GregLTurnquist.com/springone2020
Simple API
6
● Spring MVC
● Simple
● Clear separation between layers
GregLTurnquist.com/springone2020
Simple API
{
"id": 0,
"name": "Frodo",
"role": "ring bearer"
}
6
GregLTurnquist.com/springone2020
Simple API
{
"id": 0,
"name": "Frodo",
"role": "ring bearer"
}
6
● Data and…
GregLTurnquist.com/springone2020
Simple API
{
"id": 0,
"name": "Frodo",
"role": "ring bearer"
}
6
● Data and…
● …nothing else!
GregLTurnquist.com/springone2020
Simple API
{
"id": 0,
"name": "Frodo",
"role": "ring bearer"
}
6
● Data and…
● …nothing else!
● Some value, but what about…
GregLTurnquist.com/springone2020
Simple API
{
"id": 0,
"name": "Frodo",
"role": "ring bearer"
}
6
● Data and…
● …nothing else!
● Some value, but what about…
● …updates?
GregLTurnquist.com/springone2020
Simple API
{
"id": 0,
"name": "Frodo",
"role": "ring bearer"
}
6
● Data and…
● …nothing else!
● Some value, but what about…
● …updates?
● …breaking changes?
GregLTurnquist.com/springone2020
Simple API
{
"id": 0,
"name": "Frodo",
"role": "ring bearer"
}
6
● Data and…
● …nothing else!
● Some value, but what about…
● …updates?
● …breaking changes?
● …backwards compatibility?
GregLTurnquist.com/springone2020
What happens when…
6
GregLTurnquist.com/springone2020
What happens when…
6
GregLTurnquist.com/springone2020
What happens when you serve this…
{
"id": 0,
"firstName": "Frodo",
"lastName": "Baggins",
"role": "ring bearer"
}
6
GregLTurnquist.com/springone2020
…but older clients try this?
6
GregLTurnquist.com/springone2020
…but older clients try this?
6
● What now?
GregLTurnquist.com/springone2020
…but older clients try this?
6
● What now?
● Tell users to just use your new API?
GregLTurnquist.com/springone2020
…but older clients try this?
6
● What now?
● Tell users to just use your new API?
● Roll out another version?
GregLTurnquist.com/springone2020
…but older clients try this?
6
● What now?
● Tell users to just use your new API?
● Roll out another version?
● Handle this AND the new format?
GregLTurnquist.com/springone2020
What about versioning?
6
https://www.infoq.com/news/2013/12/api-versioning/
● Knot = Single version of API
● P2P = Multiple versions
● Compatible = One API supports
multiple versions
GregLTurnquist.com/springone2020
What about versioning?
6
It is always possible for some unexpected reason to come along that requires a completely
different API, especially when the semantics of the interface change or security issues require the
abandonment of previously deployed software. My point was that there is no need to anticipate
such world-breaking changes with a version ID. We have the hostname for that. What you are
creating is not a new version of the API, but a new system with a new brand.
On the Web, we call that a new website. Websites don’t come with version numbers attached
because they never need to. Neither should a RESTful API. A RESTful API (done right) is just a
website for clients with a limited vocabulary.
—Dr. Roy Fielding
“
GregLTurnquist.com/springone2020
How rough can deprecating APIs be?
6
http://bit.ly/deprecating-apis
GregLTurnquist.com/springone2020
Just do this…
6
GregLTurnquist.com/springone2020
Just do this…
6
● “Never delete a
column”
GregLTurnquist.com/springone2020
Just do this…
6
● “Never delete a
column”
● Handle new
clients
GregLTurnquist.com/springone2020
Just do this…
6
● “Never delete a
column”
● Handle new
clients
● Support old
clients
GregLTurnquist.com/springone2020
Just do this…
6
● “Never delete a
column”
● Handle new
clients
● Support old
clients
● Everyone wins!
GregLTurnquist.com/springone2020
What else do you need?
GregLTurnquist.com/springone2020
What else do you need?
● Hypermedia controls
GregLTurnquist.com/springone2020
What else do you need?
● Hypermedia controls
● Instead of telling someone how to use your API on a portal…
GregLTurnquist.com/springone2020
What else do you need?
● Hypermedia controls
● Instead of telling someone how to use your API on a portal…
● …give them the controls right in the API
GregLTurnquist.com/springone2020
What else do you need?
● Hypermedia controls
● Instead of telling someone how to use your API on a portal…
● …give them the controls right in the API
● …using standard media types
GregLTurnquist.com/springone2020
What else do you need?
● Hypermedia controls
● Instead of telling someone how to use your API on a portal…
● …give them the controls right in the API
● …using standard media types
● It’s how the web functions
GregLTurnquist.com/springone2020
What else do you need?
● Hypermedia controls
● Instead of telling someone how to use your API on a portal…
● …give them the controls right in the API
● …using standard media types
● It’s how the web functions
● It’s the reason the web succeeded
GregLTurnquist.com/springone2020
What else do you need?
● Hypermedia controls
● Instead of telling someone how to use your API on a portal…
● …give them the controls right in the API
● …using standard media types
● It’s how the web functions
● It’s the reason the web succeeded
● The reason everyone today builds web apps
GregLTurnquist.com/springone2020
Just migrate from this…
6
GregLTurnquist.com/springone2020
…to this!
6
GregLTurnquist.com/springone2020
…to this!
6
GregLTurnquist.com/springone2020
…to this!
6
GregLTurnquist.com/springone2020
…to this!
6
GregLTurnquist.com/springone2020
…to this!
6
GregLTurnquist.com/springone2020
…to this!
6
GregLTurnquist.com/springone2020
…to this!
6
GregLTurnquist.com/springone2020
…to this!
6
GregLTurnquist.com/springone2020
…to this!
6
GregLTurnquist.com/springone2020
{
"id": 0,
"firstName": "Frodo",
"lastName": "Baggins",
"role": "ring bearer",
"name": "Frodo Baggins",
"_links": {
"self": {
"href": "http://localhost:8080/rest/employees/0"
},
"employees": {
"href": "http://localhost:8080/rest/employees"
}
},
…
So you can do this!
6
● New clients
GregLTurnquist.com/springone2020
{
"id": 0,
"firstName": "Frodo",
"lastName": "Baggins",
"role": "ring bearer",
"name": "Frodo Baggins",
"_links": {
"self": {
"href": "http://localhost:8080/rest/employees/0"
},
"employees": {
"href": "http://localhost:8080/rest/employees"
}
},
…
So you can do this!
6
● New clients
● Old clients
GregLTurnquist.com/springone2020
{
"id": 0,
"firstName": "Frodo",
"lastName": "Baggins",
"role": "ring bearer",
"name": "Frodo Baggins",
"_links": {
"self": {
"href": "http://localhost:8080/rest/employees/0"
},
"employees": {
"href": "http://localhost:8080/rest/employees"
}
},
…
So you can do this!
6
● New clients
● Old clients
● Navigate between related
components
GregLTurnquist.com/springone2020
…and this
6
…
"_templates": {
"default": {
"method": "put",
"properties": [
{
"name": "firstName"
},
{
"name": "id",
"readOnly": true
},
{
"name": "lastName"
},
{
"name": "name"
},
{
"name": "role"
}
]}}}
● New clients
● Old clients
● Navigate between related
components
● Effect change
GregLTurnquist.com/springone2020
…
"_templates": {
"default": {
"method": "put",
"properties": [
{
"name": "firstName"
},
{
"name": "id",
"readOnly": true
},
{
"name": "lastName"
},
{
"name": "name"
},
{
"name": "role"
}
]}}}
…and this
6
● New clients
● Old clients
● Navigate between related
components
● Effect change
GregLTurnquist.com/springone2020
…
"_templates": {
"default": {
"method": "put",
"properties": [
{
"name": "firstName"
},
{
"name": "id",
"readOnly": true
},
{
"name": "lastName"
},
{
"name": "name"
},
{
"name": "role"
}
]}}}
…and this
6
● New clients
● Old clients
● Navigate between related
components
● Effect change (even for
old clients!)
GregLTurnquist.com/springone2020
Consuming Hypermedia
GregLTurnquist.com/springone2020
What if…
GregLTurnquist.com/springone2020
What if…
● You wanted your client to consume hypermedia?
GregLTurnquist.com/springone2020
What if…
● You wanted your client to consume hypermedia?
● Ready to register all those messy message converters?
GregLTurnquist.com/springone2020
What if…
● You wanted your client to consume hypermedia?
● Ready to register all those messy message converters?
● Do you really want to look up how to customize RestTemplate (or
WebClient) to handle HAL, HAL-FORMS, etc., etc., etc.?
GregLTurnquist.com/springone2020
What if…
● You wanted your client to consume hypermedia?
● Ready to register all those messy message converters?
● Do you really want to look up how to customize RestTemplate (or
WebClient) to handle HAL, HAL-FORMS, etc., etc., etc.?
GregLTurnquist.com/springone2020
What if…
● You wanted your client to consume hypermedia?
● Ready to register all those messy message converters?
● Do you really want to look up how to customize RestTemplate (or
WebClient) to handle HAL, HAL-FORMS, etc., etc., etc.?
Spring HATEOAS has you covered!
GregLTurnquist.com/springone2020
RestTemplate support
GregLTurnquist.com/springone2020
RestTemplate support
GregLTurnquist.com/springone2020
RestTemplate support
GregLTurnquist.com/springone2020
RestTemplate support
GregLTurnquist.com/springone2020
RestTemplate support
GregLTurnquist.com/springone2020
We also support WebClient
● Inject WebClient.Builder into your app
● …and .build()!
GregLTurnquist.com/springone2020
We also support WebClient
● Inject WebClient.Builder into your app
● …and .build()!
GregLTurnquist.com/springone2020
We also support WebClient
GregLTurnquist.com/springone2020
We also support WebClient
GregLTurnquist.com/springone2020
We also support WebClient
GregLTurnquist.com/springone2020
We also support WebClient
😳Not in production!
GregLTurnquist.com/springone2020
Additional Features
GregLTurnquist.com/springone2020
Additional Features
● Spring WebFlux support
GregLTurnquist.com/springone2020
Additional Features
● Spring WebFlux support
● More media types (UBER+JSON, Collection+JSON, Your Own ™)
GregLTurnquist.com/springone2020
Additional Features
● Spring WebFlux support
● More media types (UBER+JSON, Collection+JSON, Your Own ™)
● Standardized errors with Problem+JSON (RFC-7807)
GregLTurnquist.com/springone2020
Additional Features
● Spring WebFlux support
● More media types (UBER+JSON, Collection+JSON, Your Own ™)
● Standardized errors with Problem+JSON (RFC-7807)
● Lots of performance improvements
GregLTurnquist.com/springone2020
Additional Features
● Spring WebFlux support
● More media types (UBER+JSON, Collection+JSON, Your Own ™)
● Standardized errors with Problem+JSON (RFC-7807)
● Lots of performance improvements
● Increasing community involvement
● JSON:API, Siren media types
● Document updates
● New ideas!
GregLTurnquist.com/springone2020
Additional Features
● Spring WebFlux support
● More media types (UBER+JSON, Collection+JSON, Your Own ™)
● Standardized errors with Problem+JSON (RFC-7807)
● Lots of performance improvements
● Increasing community involvement
● JSON:API, Siren media types
● Document updates
● New ideas!
GregLTurnquist.com/springone2020
Additional Features
● Spring WebFlux support
● More media types (UBER+JSON, Collection+JSON, Your Own ™)
● Standardized errors with Problem+JSON (RFC-7807)
● Lots of performance improvements
● Increasing community involvement
● JSON:API, Siren media types
● Document updates
● New ideas!
GregLTurnquist.com/springone2020
Additional Features
● Spring WebFlux support
● More media types (UBER+JSON, Collection+JSON, Your Own ™)
● Standardized errors with Problem+JSON (RFC-7807)
● Lots of performance improvements
● Increasing community involvement
● JSON:API, Siren media types
● Document updates
● New ideas!
Check it out!
GregLTurnquist.com/springone2020
Thank you SpringOne 2020!
Join me on #session-building-flexible-apis-with-spring-hateoas
for Q&A
Follow us on twitter @SpringHATEOAS
Visit GregLTurnquist.com/springone2020 to WIN a
paperback+ebook copy of Hacking with Spring Boot 2.3

More Related Content

What's hot

サーバPUSHざっくりまとめ
サーバPUSHざっくりまとめサーバPUSHざっくりまとめ
サーバPUSHざっくりまとめYasuhiro Mawarimichi
 
Design patterns for microservice architecture
Design patterns for microservice architectureDesign patterns for microservice architecture
Design patterns for microservice architectureThe Software House
 
JPAの同時実行制御とロック20140518 #ccc_r15 #jjug_ccc
JPAの同時実行制御とロック20140518 #ccc_r15 #jjug_cccJPAの同時実行制御とロック20140518 #ccc_r15 #jjug_ccc
JPAの同時実行制御とロック20140518 #ccc_r15 #jjug_cccMasatoshi Tada
 
Windows IOCP vs Linux EPOLL Performance Comparison
Windows IOCP vs Linux EPOLL Performance ComparisonWindows IOCP vs Linux EPOLL Performance Comparison
Windows IOCP vs Linux EPOLL Performance ComparisonSeungmo Koo
 
Visualizing Kafka Security
Visualizing Kafka SecurityVisualizing Kafka Security
Visualizing Kafka SecurityDataWorks Summit
 
RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話Takuto Wada
 
서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해중선 곽
 
Concurrency Control in MongoDB 3.0
Concurrency Control in MongoDB 3.0Concurrency Control in MongoDB 3.0
Concurrency Control in MongoDB 3.0MongoDB
 
Deploying Kafka Streams Applications with Docker and Kubernetes
Deploying Kafka Streams Applications with Docker and KubernetesDeploying Kafka Streams Applications with Docker and Kubernetes
Deploying Kafka Streams Applications with Docker and Kubernetesconfluent
 
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버Heungsub Lee
 
Tuning Apache Kafka Connectors for Flink.pptx
Tuning Apache Kafka Connectors for Flink.pptxTuning Apache Kafka Connectors for Flink.pptx
Tuning Apache Kafka Connectors for Flink.pptxFlink Forward
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀승명 양
 
Confluent Tech Talk Korea
Confluent Tech Talk KoreaConfluent Tech Talk Korea
Confluent Tech Talk Koreaconfluent
 
[AIS 2018] [Team Tools_Advanced] Confluence 100배 활용하기 - 커브
[AIS 2018] [Team Tools_Advanced] Confluence 100배 활용하기 - 커브[AIS 2018] [Team Tools_Advanced] Confluence 100배 활용하기 - 커브
[AIS 2018] [Team Tools_Advanced] Confluence 100배 활용하기 - 커브Atlassian 대한민국
 
Pinot: Enabling Real-time Analytics Applications @ LinkedIn's Scale
Pinot: Enabling Real-time Analytics Applications @ LinkedIn's ScalePinot: Enabling Real-time Analytics Applications @ LinkedIn's Scale
Pinot: Enabling Real-time Analytics Applications @ LinkedIn's ScaleSeunghyun Lee
 
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可Hitachi, Ltd. OSS Solution Center.
 
Next-generation MMORPG service architecture
Next-generation MMORPG service architectureNext-generation MMORPG service architecture
Next-generation MMORPG service architectureJongwon Kim
 
2019/7/27 先別開 Branch 了,你聽過 Feature Toggle 嗎?
2019/7/27 先別開 Branch 了,你聽過 Feature Toggle 嗎?2019/7/27 先別開 Branch 了,你聽過 Feature Toggle 嗎?
2019/7/27 先別開 Branch 了,你聽過 Feature Toggle 嗎?Miles Chou
 
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지강 민우
 

What's hot (20)

サーバPUSHざっくりまとめ
サーバPUSHざっくりまとめサーバPUSHざっくりまとめ
サーバPUSHざっくりまとめ
 
Design patterns for microservice architecture
Design patterns for microservice architectureDesign patterns for microservice architecture
Design patterns for microservice architecture
 
JPAの同時実行制御とロック20140518 #ccc_r15 #jjug_ccc
JPAの同時実行制御とロック20140518 #ccc_r15 #jjug_cccJPAの同時実行制御とロック20140518 #ccc_r15 #jjug_ccc
JPAの同時実行制御とロック20140518 #ccc_r15 #jjug_ccc
 
Windows IOCP vs Linux EPOLL Performance Comparison
Windows IOCP vs Linux EPOLL Performance ComparisonWindows IOCP vs Linux EPOLL Performance Comparison
Windows IOCP vs Linux EPOLL Performance Comparison
 
Visualizing Kafka Security
Visualizing Kafka SecurityVisualizing Kafka Security
Visualizing Kafka Security
 
RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話
 
서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해
 
Concurrency Control in MongoDB 3.0
Concurrency Control in MongoDB 3.0Concurrency Control in MongoDB 3.0
Concurrency Control in MongoDB 3.0
 
Deploying Kafka Streams Applications with Docker and Kubernetes
Deploying Kafka Streams Applications with Docker and KubernetesDeploying Kafka Streams Applications with Docker and Kubernetes
Deploying Kafka Streams Applications with Docker and Kubernetes
 
Why do I hate Hibernate?
Why do I hate Hibernate?Why do I hate Hibernate?
Why do I hate Hibernate?
 
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
 
Tuning Apache Kafka Connectors for Flink.pptx
Tuning Apache Kafka Connectors for Flink.pptxTuning Apache Kafka Connectors for Flink.pptx
Tuning Apache Kafka Connectors for Flink.pptx
 
NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀NDC 11 자이언트 서버의 비밀
NDC 11 자이언트 서버의 비밀
 
Confluent Tech Talk Korea
Confluent Tech Talk KoreaConfluent Tech Talk Korea
Confluent Tech Talk Korea
 
[AIS 2018] [Team Tools_Advanced] Confluence 100배 활용하기 - 커브
[AIS 2018] [Team Tools_Advanced] Confluence 100배 활용하기 - 커브[AIS 2018] [Team Tools_Advanced] Confluence 100배 활용하기 - 커브
[AIS 2018] [Team Tools_Advanced] Confluence 100배 활용하기 - 커브
 
Pinot: Enabling Real-time Analytics Applications @ LinkedIn's Scale
Pinot: Enabling Real-time Analytics Applications @ LinkedIn's ScalePinot: Enabling Real-time Analytics Applications @ LinkedIn's Scale
Pinot: Enabling Real-time Analytics Applications @ LinkedIn's Scale
 
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
パスキーでリードする: NGINXとKeycloakによる効率的な認証・認可
 
Next-generation MMORPG service architecture
Next-generation MMORPG service architectureNext-generation MMORPG service architecture
Next-generation MMORPG service architecture
 
2019/7/27 先別開 Branch 了,你聽過 Feature Toggle 嗎?
2019/7/27 先別開 Branch 了,你聽過 Feature Toggle 嗎?2019/7/27 先別開 Branch 了,你聽過 Feature Toggle 嗎?
2019/7/27 先別開 Branch 了,你聽過 Feature Toggle 嗎?
 
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
[IGC 2017] 아마존 구승모 - 게임 엔진으로 서버 제작 및 운영까지
 

Similar to Building Flexible APIs with Spring HATEOAS

The New Renaissance of JavaScript - SMX London 2019
The New Renaissance of JavaScript - SMX London 2019The New Renaissance of JavaScript - SMX London 2019
The New Renaissance of JavaScript - SMX London 2019Onely
 
The New Renaissance of JavaScript - SMX London 2019
The New Renaissance of JavaScript - SMX London 2019The New Renaissance of JavaScript - SMX London 2019
The New Renaissance of JavaScript - SMX London 2019Onely
 
Monitor all the thingz slideshare
Monitor all the thingz slideshareMonitor all the thingz slideshare
Monitor all the thingz slideshareSoluto
 
Ducksboard - Building an Internet startup in Spain (from a coder's point of v...
Ducksboard - Building an Internet startup in Spain (from a coder's point of v...Ducksboard - Building an Internet startup in Spain (from a coder's point of v...
Ducksboard - Building an Internet startup in Spain (from a coder's point of v...Ducksboard
 
Martin Splitt "Creating virtual worlds in the browser"
Martin Splitt "Creating virtual worlds in the browser"Martin Splitt "Creating virtual worlds in the browser"
Martin Splitt "Creating virtual worlds in the browser"Fwdays
 
Mobile Apps by Pure Go with Reverse Binding
Mobile Apps by Pure Go with Reverse BindingMobile Apps by Pure Go with Reverse Binding
Mobile Apps by Pure Go with Reverse BindingTakuya Ueda
 
Playwright: A New Test Automation Framework for the Modern Web
Playwright: A New Test Automation Framework for the Modern WebPlaywright: A New Test Automation Framework for the Modern Web
Playwright: A New Test Automation Framework for the Modern WebApplitools
 
Beyond Polymer - JUG Summer Camp - 2015-09-18
Beyond Polymer - JUG Summer Camp - 2015-09-18Beyond Polymer - JUG Summer Camp - 2015-09-18
Beyond Polymer - JUG Summer Camp - 2015-09-18Horacio Gonzalez
 
Progressing JavaScript and Apps the Web way…
 Progressing JavaScript and Apps the Web way…  Progressing JavaScript and Apps the Web way…
Progressing JavaScript and Apps the Web way… Christian Heilmann
 
Build and Deploy a Python Web App to Amazon in 30 Mins
Build and Deploy a Python Web App to Amazon in 30 MinsBuild and Deploy a Python Web App to Amazon in 30 Mins
Build and Deploy a Python Web App to Amazon in 30 MinsJeff Hull
 
APIdays Barcelona 2019 - Competing with an API giant, lessons learned with Ed...
APIdays Barcelona 2019 - Competing with an API giant, lessons learned with Ed...APIdays Barcelona 2019 - Competing with an API giant, lessons learned with Ed...
APIdays Barcelona 2019 - Competing with an API giant, lessons learned with Ed...apidays
 
Competing with an API giant, lessons learned: OpenCage vs. Google
Competing with an API giant, lessons learned: OpenCage vs. GoogleCompeting with an API giant, lessons learned: OpenCage vs. Google
Competing with an API giant, lessons learned: OpenCage vs. GoogleEd Freyfogle
 
Mobile Games Market Trends Q1 2018 from Priori Data
Mobile Games Market Trends Q1 2018 from Priori DataMobile Games Market Trends Q1 2018 from Priori Data
Mobile Games Market Trends Q1 2018 from Priori DataBenjamin Nolan
 
Enabling Microservice @ Orbitz - GOTO Chicago 2016
Enabling Microservice @ Orbitz - GOTO Chicago 2016Enabling Microservice @ Orbitz - GOTO Chicago 2016
Enabling Microservice @ Orbitz - GOTO Chicago 2016Steve Hoffman
 
How do you get started in AI?
How do you get started in AI?How do you get started in AI?
How do you get started in AI?Gordon Haff
 
Dos donts of js content optimisation - Digital Olympus 2018
Dos donts of js content optimisation - Digital Olympus 2018Dos donts of js content optimisation - Digital Olympus 2018
Dos donts of js content optimisation - Digital Olympus 2018Chris Green
 
Django 프로젝트 - heroku 배포하기
Django  프로젝트 - heroku 배포하기Django  프로젝트 - heroku 배포하기
Django 프로젝트 - heroku 배포하기Jessica Lee
 
Auditing smart contracts beyond code and into godmode backdoors
Auditing smart contracts   beyond code and into godmode backdoorsAuditing smart contracts   beyond code and into godmode backdoors
Auditing smart contracts beyond code and into godmode backdoorsBruno Skvorc
 
A Large-Scale Study of Test Coverage Evolution
A Large-Scale Study of Test Coverage EvolutionA Large-Scale Study of Test Coverage Evolution
A Large-Scale Study of Test Coverage Evolutionjon_bell
 

Similar to Building Flexible APIs with Spring HATEOAS (20)

The New Renaissance of JavaScript - SMX London 2019
The New Renaissance of JavaScript - SMX London 2019The New Renaissance of JavaScript - SMX London 2019
The New Renaissance of JavaScript - SMX London 2019
 
The New Renaissance of JavaScript - SMX London 2019
The New Renaissance of JavaScript - SMX London 2019The New Renaissance of JavaScript - SMX London 2019
The New Renaissance of JavaScript - SMX London 2019
 
shanghai
shanghaishanghai
shanghai
 
Monitor all the thingz slideshare
Monitor all the thingz slideshareMonitor all the thingz slideshare
Monitor all the thingz slideshare
 
Ducksboard - Building an Internet startup in Spain (from a coder's point of v...
Ducksboard - Building an Internet startup in Spain (from a coder's point of v...Ducksboard - Building an Internet startup in Spain (from a coder's point of v...
Ducksboard - Building an Internet startup in Spain (from a coder's point of v...
 
Martin Splitt "Creating virtual worlds in the browser"
Martin Splitt "Creating virtual worlds in the browser"Martin Splitt "Creating virtual worlds in the browser"
Martin Splitt "Creating virtual worlds in the browser"
 
Mobile Apps by Pure Go with Reverse Binding
Mobile Apps by Pure Go with Reverse BindingMobile Apps by Pure Go with Reverse Binding
Mobile Apps by Pure Go with Reverse Binding
 
Playwright: A New Test Automation Framework for the Modern Web
Playwright: A New Test Automation Framework for the Modern WebPlaywright: A New Test Automation Framework for the Modern Web
Playwright: A New Test Automation Framework for the Modern Web
 
Beyond Polymer - JUG Summer Camp - 2015-09-18
Beyond Polymer - JUG Summer Camp - 2015-09-18Beyond Polymer - JUG Summer Camp - 2015-09-18
Beyond Polymer - JUG Summer Camp - 2015-09-18
 
Progressing JavaScript and Apps the Web way…
 Progressing JavaScript and Apps the Web way…  Progressing JavaScript and Apps the Web way…
Progressing JavaScript and Apps the Web way…
 
Build and Deploy a Python Web App to Amazon in 30 Mins
Build and Deploy a Python Web App to Amazon in 30 MinsBuild and Deploy a Python Web App to Amazon in 30 Mins
Build and Deploy a Python Web App to Amazon in 30 Mins
 
APIdays Barcelona 2019 - Competing with an API giant, lessons learned with Ed...
APIdays Barcelona 2019 - Competing with an API giant, lessons learned with Ed...APIdays Barcelona 2019 - Competing with an API giant, lessons learned with Ed...
APIdays Barcelona 2019 - Competing with an API giant, lessons learned with Ed...
 
Competing with an API giant, lessons learned: OpenCage vs. Google
Competing with an API giant, lessons learned: OpenCage vs. GoogleCompeting with an API giant, lessons learned: OpenCage vs. Google
Competing with an API giant, lessons learned: OpenCage vs. Google
 
Mobile Games Market Trends Q1 2018 from Priori Data
Mobile Games Market Trends Q1 2018 from Priori DataMobile Games Market Trends Q1 2018 from Priori Data
Mobile Games Market Trends Q1 2018 from Priori Data
 
Enabling Microservice @ Orbitz - GOTO Chicago 2016
Enabling Microservice @ Orbitz - GOTO Chicago 2016Enabling Microservice @ Orbitz - GOTO Chicago 2016
Enabling Microservice @ Orbitz - GOTO Chicago 2016
 
How do you get started in AI?
How do you get started in AI?How do you get started in AI?
How do you get started in AI?
 
Dos donts of js content optimisation - Digital Olympus 2018
Dos donts of js content optimisation - Digital Olympus 2018Dos donts of js content optimisation - Digital Olympus 2018
Dos donts of js content optimisation - Digital Olympus 2018
 
Django 프로젝트 - heroku 배포하기
Django  프로젝트 - heroku 배포하기Django  프로젝트 - heroku 배포하기
Django 프로젝트 - heroku 배포하기
 
Auditing smart contracts beyond code and into godmode backdoors
Auditing smart contracts   beyond code and into godmode backdoorsAuditing smart contracts   beyond code and into godmode backdoors
Auditing smart contracts beyond code and into godmode backdoors
 
A Large-Scale Study of Test Coverage Evolution
A Large-Scale Study of Test Coverage EvolutionA Large-Scale Study of Test Coverage Evolution
A Large-Scale Study of Test Coverage Evolution
 

More from VMware Tanzu

What AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItWhat AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItVMware Tanzu
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023VMware Tanzu
 
Enhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleEnhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleVMware Tanzu
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023VMware Tanzu
 
Platforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductPlatforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductVMware Tanzu
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready AppsVMware Tanzu
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And BeyondVMware Tanzu
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfVMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023VMware Tanzu
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptxVMware Tanzu
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchVMware Tanzu
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishVMware Tanzu
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVMware Tanzu
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - FrenchVMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023VMware Tanzu
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootVMware Tanzu
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerVMware Tanzu
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeVMware Tanzu
 
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsSpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsVMware Tanzu
 

More from VMware Tanzu (20)

What AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItWhat AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About It
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023
 
Enhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleEnhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at Scale
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023
 
Platforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductPlatforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a Product
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready Apps
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptx
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - French
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - English
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - French
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software Engineer
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs Practice
 
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsSpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
 

Recently uploaded

Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 

Recently uploaded (20)

Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 

Building Flexible APIs with Spring HATEOAS