Gegevensveld | Waarde |
---|---|
Osiriscode | BFVH4DBS3 |
ECTS | 3 |
Toetsvorm | Opdracht |
Minimum cijfer | 5,5 |
Docent(en) | KEMC |
Contactpersoon | KEMC |
Voertaal | Nederlands |
After successfully attending this course, students are able to
- Design an API according to the REST (REpresentational State Transfer) architectural style
- Implement an API using the REST Maturity levels, up to level 3 (full HATEOAS compliant)
- Incorporate Domain Driven Design for implementing Data Transfer Objects
- Understand methods of (De)serializing POJOs to and from JSON data for communication purposes
- Test microservices using JUnit, Mockito and Spring Test (MockMVC)
- Recognize the proper use of the HTTP Status codes for communication and testing purposes
- Auto-generate full REST API documentation by using Spring REST Docs and the asciidoc plugin
- Reduc the application load by implementing pagination for accessing large resources (databases)
- Provide monitoring endpoints for assessing the application health and status through an API (using Spring Actuator)
- (optional) enable advanced scalability by configuring a Docker container for use with Kubernetes
During this course, titled From Monoliths to Microservices, we will explore modern techniques for designing and developing applications consisting of scalable, modular microservices. These services communicate through a REST API (a developer’s UI) implemented using the Java Spring framework which is the main technique used in this course.
The course begins by creating a single, small, microservice to which new features are added in later weeks and resulting in a mature, well documented REST API that provides insights in its usage (using HATEOAS links to resources), statistics and health information and properly communicates on error using JSON and HTTP status codes. Upon completion of the service, a Docker container configuration file (Dockerfile
) is created for use with the Kubernetes container orchestrator for deployment as a scalable application.
beoordeling Your final project, and the functionality it offers, will be assessed and graded. These aspects will be taken into account (percentage indicates weighing factor):
- General code-quality and code-documentation (10% & 5%)
- Application design, including proper use of DAO/DTOs (20%)
- Implemented Unit/ Integration tests, both positive and negative (15%)
- Documentation of the REST API endpoints using asciidoc (10%)
- Implementation of custom health and info actuator endpoints (10%)
- Functionality of the API, depending on project choice (30%)
Literatuur
- Chapter 1 from Testing Java Microservices, Alex Soto Bueno, Jason Porter and Andy Gumbrecht, ISBN 9781617292897. Free chapter 1 for download at manning publications.
Web
- Blackboard course thema 12
- Bitbucket repository
-
- Hoor/werkcolleges
-
-
- It is very strongly advised to take the course “Application Design” first, since this course relies heavily on advanced Java coding skills and the Java Spring framework.
- Introductie Java
- Webbased Information Systems 1
- Application Design
- Articles by Martin Fowler and James Lewis about microservices.
Current material for 2017-2018 (blog posts and online resources, might change based on availability)
-