HSG-MCS-HS21_tapas/tapas-tasks
2021-10-17 00:17:13 +02:00
..
.mvn/wrapper Initial commit 2021-10-04 09:13:00 +02:00
src Implemented all issues regarding Executor Pool. Did not complete the implementation of duplicate Ip/port check on adding a new executor 2021-10-17 00:17:13 +02:00
.editorconfig Initial commit 2021-10-04 09:13:00 +02:00
.gitignore Initial commit 2021-10-04 09:13:00 +02:00
Dockerfile added docker stuff for development 2021-10-06 10:23:57 +02:00
mvnw Initial commit 2021-10-04 09:13:00 +02:00
mvnw.cmd Initial commit 2021-10-04 09:13:00 +02:00
pom.xml added code quality scanns 2021-10-06 18:11:18 +02:00
README.md Initial commit 2021-10-04 09:13:00 +02:00

tapas-tasks

Micro-service for Managing Tasks in a Task List implemented following Hexagonal Architecture.

Based on examples from book "Get Your Hands Dirty on Clean Architecture" by Tom Hombergs

Technologies: Java, Spring Boot, Maven

Note: this repository contains an EditorConfig file (.editorconfig) with default editor settings. EditorConfig is supported out-of-the-box by the IntelliJ IDE. To help maintain consistent code styles, we recommend to reuse this editor configuration file in all your services.

HTTP API Overview

The code we provide includes a minimalistic HTTP API for (i) creating a new task and (ii) retrieving the representation of a task.

For further developing and working with your HTTP API, we recommend to use Postman.

Creating a new task

A new task is created via an HTTP POST request to the /tasks/ endpoint. The body of the request must include a JSON payload with the content type application/json and two required fields:

  • taskName: a string that represents the name of the task to be created
  • taskType: a string that represents the type of the task to be created

A sample HTTP request with curl:

curl -i --location --request POST 'http://localhost:8081/tasks/' --header 'Content-Type: application/json' --data-raw '{
    "taskName" : "task1",
    "taskType" : "type1"
}'

HTTP/1.1 201
Content-Type: application/json
Content-Length: 142
Date: Sun, 03 Oct 2021 17:25:32 GMT

{
  "taskType" : "type1",
  "taskState" : "OPEN",
  "taskListName" : "tapas-tasks-tutors",
  "taskName" : "task1",
  "taskId" : "53cb19d6-2d9b-486f-98c7-c96c93b037f0"
}

If the task is created successfuly, a 201 Created status code is returned together with a JSON representation of the created task. The representation includes, among others, a universally unique identifier (UUID) for the newly created task (taskId).

Retrieving a task

The representation of a task is retrieved via an HTTP GET request to the /tasks/<task-UUID> endpoint.

A sample HTTP request with curl:

curl -i --location --request GET 'http://localhost:8081/tasks/53cb19d6-2d9b-486f-98c7-c96c93b037f0'

HTTP/1.1 200
Content-Type: application/json
Content-Length: 142
Date: Sun, 03 Oct 2021 17:27:06 GMT

{
  "taskType" : "type1",
  "taskState" : "OPEN",
  "taskListName" : "tapas-tasks-tutors",
  "taskName" : "task1",
  "taskId" : "53cb19d6-2d9b-486f-98c7-c96c93b037f0"
}