• Inicio

    Professor: Andrea Arcuri

    Summary:  RESTful APIs are widespread in industry, especially in enterprise applications developed with a microservice architecture. All major companies use them, like for example Google, Amazon, Netflix, etc. A RESTful web service will provide data via an API over the network using HTTP, usually in the JSON format. In this course, we will go into the details of how to properly design such APIs, and learn how to implement them in Kotlin and SpringBoot. As large systems will be composed of several (possibly hundreds of) REST APIs, we will go into the details of the challenges of microservice applications, touching topics like API gateways and load-balancers. Testing a RESTful API poses many challenges, because inputs/outputs are sequences of HTTP requests/responses to a remote server, possibly interacting with databases and other web services. We will show current research on how to automatically generate such tests by means of Evolutionary Algorithms, with open-source tools like EvoMaster.

    Brief Index:

    -- Intro to Web Services with RESTful APIs

    -- Advanced HTTP

    -- A Gentle Introduction to Languages for Enterprise Systems: Kotlin

    -- SpringBoot and Inversion of Control

    -- The Microservice Architectural Style

    -- Virtualization and Containerization with Docker

    -- Automated Test Generation

    -- Search-Based Software Engineering

    Required Background:

    -- experience with an OO language (e.g., Java, C++ and C#)

    -- basic understanding of networking, e.g. IP/TCP protocols

    -- basic understanding of relational databases (eg, Postgres and MySQL)

    -- basic understanding of combinatorial optimization and search heuristics

    All course material can be found at:

    https://github.com/arcuri82/eci-2019