The course is composed of 12 lessons, each one lasting between 2 and 4 hours.
-
Lesson 01: Intro, Kotlin and JSON
Modules:
- advanced/kotlin
- advanced/data-format
-
Lesson 02: HTTP and Web Services
Modules:
- advanced/rest/weather-client
- advanced/example-news
- advanced/rest/news-rest
-
Lesson 03: Charsets and PATCH
Modules:
- advanced/rest/charset
- advanced/rest/patch
-
Lesson 04: RESTful APIs and 3xx HTTP Redirection
Modules:
- advanced/rest/redirect
- advanced/rest/news-rest-v2
-
Lesson 05: Wrapped Responses and Pagination
Modules:
- advanced/rest/wrapper
- advanced/rest/rest-dto
- advanced/rest/pagination
-
Lesson 06: Exceptions in Spring, Mocking and Circuit Breakers
Modules:
- advanced/rest/exception-handling
- advanced/rest/rest-exception
- advanced/rest/wiremock
- advanced/rest/circuit-breaker
-
Lesson 07: Conditional Requests and Caching
Modules:
- advanced/rest/conditional-get
- advanced/rest/conditional-change
- advanced/rest/cache
-
Lesson 08: SOAP and GraphQL
Modules:
- advanced/graphql/base
- advanced/graphql/resolver
- advanced/graphql/database
- advanced/graphql/graphql-dto
- advanced/graphql/mutation
- advanced/graphql/news-graphql
-
Lesson 09: Frontend and Docker-Compose
Slides: none
Modules:
- advanced/frontend/spa-rest/spa-rest-backend
- advanced/frontend/spa-rest/spa-rest-dto
- advanced/frontend/spa-rest/spa-rest-frontend
- advanced/frontend/spa-rest/spa-rest-e2e-tests
- advanced/frontend/websocket-chat
-
Lesson 10: MicroService Architectures
Modules:
- advanced/advanced/microservice/discovery/*
- advanced/advanced/microservice/gateway/*
-
Lesson 11: Security in MicroServices
Modules:
- advanced/advanced/security/basic
- advanced/advanced/security/session
- advanced/advanced/security/distributed-session/*
-
Lesson 12: AMQP and RabbitMQ
Modules:
- advanced/advanced/amqp/base-queue
- advanced/advanced/amqp/distributed-work
- advanced/advanced/amqp/fanout
- advanced/advanced/amqp/direct-exchange
- advanced/advanced/amqp/topic-exchange
- advanced/advanced/amqp/amqp-rest
- RFC-5789: PATCH Method for HTTP. All of it.
- RFC-7230: Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing. Pages 1-36 (up to beginning of Section 4.1), 41-43 (Section 5 to 5.3.2), 44-47 (Section 5.4 to 5.7), and 50-59 (Section 6 to 6.7).
- RFC-7231: Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content. Pages 1-72 (up to Section 7.4.1).
- RFC-7232: Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests. All of it.
- RFC-7234: Hypertext Transfer Protocol (HTTP/1.1): Caching. Pages 1-29 (up to Section 5.4).
- RFC-7235: Hypertext Transfer Protocol (HTTP/1.1): Authentication. Pages 1-9 (up to Section 4.4), and 12-13.
- RFC-7396: JSON Merge Patch. All of it.
- RFC-7538: The Hypertext Transfer Protocol Status Code 308 (Permanent Redirect). All of it.
- RFC-7617: The 'Basic' HTTP Authentication Scheme. All of it.
- Todd Fredrich, RESTful Service Best Practices, available in different formats. All of it.
- Chris Richardson and Floyd Smith, Microservices From Design to Deployment. Free ebook, but need registration to download its PDF. Note: in that link it is called Designing and Deploying Microservices. All of it.
- Spring
- Kotlin
- GraphQL
- RabbitMQ
There is no exercise with solutions in this course (yet).
If you have never used Kotlin before, it is recommended to do some Kotlin Koans, like this one.
Before the exam starts, it makes sense to develop a pet project to get practice. In other words, choose a topic you like, and build a RESTful API for it. Each class, when a new concept is introduced, extend your project with what you learn.
In this course the exam is divided in two parts: a written, theoretical exam, and a group project. Two examples of mock exam for the theoretical part can be found here (mock_0) and here (mock_1). On the other hand, an example of mock exam for the group project can be found here.