Skip to content

Latest commit

 

History

History
219 lines (134 loc) · 6.09 KB

File metadata and controls

219 lines (134 loc) · 6.09 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, JSON and Web Services

    Slides: [pdf], [pptx]

    Modules:

    • advanced/kotlin
    • advanced/data-format
    • advanced/calling-webservice

    Exercises: card-game-part-01


  • Lesson 02: HTTP and RESTful APIs

    Slides: [pdf], [pptx]

    Modules:

    • advanced/example-news
    • advanced/rest/news-rest

    Exercises: card-game-part-02


  • Lesson 03: Charsets, PATCH and GUIs

    Slides: [pdf], [pptx]

    Modules:

    • advanced/rest/charset
    • advanced/rest/patch
    • advanced/rest/gui-v1

    Exercises: card-game-part-03


  • Lesson 04: Wrapped Responses, Errors and Pagination

    Slides: [pdf], [pptx]

    Modules:

    • advanced/rest/wrapper
    • advanced/rest/rest-dto
    • advanced/rest/exception-handling
    • advanced/rest/rest-exception
    • advanced/rest/pagination-offset
    • advanced/rest/pagination-keyset-gui-v2

    Exercises: card-game-part-04


  • Lesson 05: 3xx Redirection, Conditional Requests and Caching

    Slides: [pdf], [pptx]

    Modules:

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

    Exercises: card-game-part-05


  • Lesson 06: Mocking, Circuit Breakers and Test Generation

    Slides: [pdf], [pptx]

    Modules:

    • advanced/rest/wiremock
    • advanced/rest/circuit-breaker
    • advanced/rest/evomaster

    Exercises: card-game-part-06


  • Lesson 07: 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

    Exercises: card-game-part-07


  • Lesson 08: MicroService Architectures

    Slides: [pdf], [pptx]

    Modules:

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

    Exercises: card-game-part-08


  • Lesson 09: Security in Microservices

    Slides: [pdf], [pptx]

    Modules:

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

    Exercises: card-game-part-09


  • Lesson 10: Message Oriented Middleware

    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

    Exercises: card-game-part-10



  • Lesson 12: Farewell and Revision

External Resources

  • RFC-5789: PATCH Method for HTTP.
  • RFC-7230: Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing.
  • RFC-7231: Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content.
  • RFC-7232: Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests.
  • RFC-7234: Hypertext Transfer Protocol (HTTP/1.1): Caching.
  • RFC-7235: Hypertext Transfer Protocol (HTTP/1.1): Authentication.
  • RFC-7396: JSON Merge Patch.
  • RFC-7538: The Hypertext Transfer Protocol Status Code 308 (Permanent Redirect).
  • RFC-7617: The 'Basic' HTTP Authentication Scheme.
  • Todd Fredrich, RESTful Service Best Practices, available in different formats.
  • 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.
  • Spring
  • Kotlin
  • GraphQL
  • RabbitMQ

Exam

An example of mock exam for the home-project can be found here.

WARNING for Fall 2020: the course is going through some restructuring. So the details of the exam will likely change before the end of the course.