Skip to content

Latest commit

 

History

History
225 lines (150 loc) · 6.31 KB

File metadata and controls

225 lines (150 loc) · 6.31 KB

Advanced: Enterprise Programming 2 (PG6100)

The course is composed of 12 lessons, each one lasting between 2 and 4 hours.

Lessons

  • Lesson 01: Intro, Kotlin and JSON

    Slides: [pdf], [pptx]

    Modules:

    • advanced/kotlin
    • advanced/data-format

  • Lesson 02: HTTP and Web Services

    Slides: [pdf], [pptx]

    Modules:

    • advanced/rest/weather-client
    • advanced/example-news
    • advanced/rest/news-rest

  • Lesson 03: Charsets and PATCH

    Slides: [pdf], [pptx]

    Modules:

    • advanced/rest/charset
    • advanced/rest/patch

  • Lesson 04: RESTful APIs and 3xx HTTP Redirection

    Slides: [pdf], [pptx]

    Modules:

    • advanced/rest/redirect
    • advanced/rest/news-rest-v2

  • Lesson 05: Wrapped Responses and Pagination

    Slides: [pdf], [pptx]

    Modules:

    • advanced/rest/wrapper
    • advanced/rest/rest-dto
    • advanced/rest/pagination

  • Lesson 06: Exceptions in Spring, Mocking and Circuit Breakers

    Slides: [pdf], [pptx]

    Modules:

    • advanced/rest/exception-handling
    • advanced/rest/rest-exception
    • advanced/rest/wiremock
    • advanced/rest/circuit-breaker

  • Lesson 07: Conditional Requests and Caching

    Slides: [pdf], [pptx]

    Modules:

    • advanced/rest/conditional-get
    • advanced/rest/conditional-change
    • advanced/rest/cache

  • Lesson 08: SOAP and GraphQL

    Slides: [pdf], [pptx]

    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

    Slides: [pdf], [pptx]

    Modules:

    • advanced/advanced/microservice/discovery/*
    • advanced/advanced/microservice/gateway/*

  • Lesson 11: Security in MicroServices

    Slides: [pdf], [pptx]

    Modules:

    • advanced/advanced/security/basic
    • advanced/advanced/security/session
    • advanced/advanced/security/distributed-session/*

  • Lesson 12: AMQP and RabbitMQ

    Slides: [pdf], [pptx]

    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

External Resources

  • 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

Exercises

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.

Exam

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.