With a more simplistic architectural vision, following all the good concepts, specially keeping total isolation of the core, but with a single external layer for the application, simulating a physically modular division into packages with config, entrypoint and dataprovider.
- Java 17
- Spring Boot
- PostgreSQL, Flyway
- JUnit 5, Mockito, JaCoCo
$ make compose-up
$ make dist
$ make run
POST
/notifications
(creates a new notification)
{
"type": "SSE",
"title": "Order created #1",
"message": "Created at 2023-02-03",
"link": "/orders/1"
}
Code : 201 CREATED
{
"id": "7c08629a-4d23-4b6d-9363-b0f0d7303aa4",
"type": "SSE",
"title": "Order created #1",
"message": "Created at 2023-02-03",
"link": "/orders/1",
"read": false
}
GET
/queries/count-unread
(counts unread notifications)
Code : 200 OK
{
"countUnread": 10
}