Network Device Inventory Service ๐งพ - lyes-sefiane/microservices-monitoring-and-observability GitHub Wiki
Table Of Contents
- Technology Stack ๐
- Definitions
- Database Modeling and Design โ
- Architecture & Design ๐๏ธ
- JUnit 5 & Mockito Test Suite ๐ธ
- OpenAPI/Swagger Documentation ๐๏ธ
- CRUD Operations with Postman ๐
Objective
The purpose of this application is to expose a graph representation of Network Devices with a relational approach as RESTful Web Service, developed with Java ecosystem ( Technology Stack โค ), leveraging HTTP methods described by the RFC 2616 protocol with the following requests :
- GET to fetch Network Device(s)
- PUT to alter a Network Device
- POST to create a Network Device
- DELETE to eliminate a Network Device
[
{
"address": "10.133.13.12",
"elementType": "router",
"neighbors": [
{
"address": "10.133.13.13",
"cost": 2
},
{
"address": "10.133.13.14",
"cost": 3
},
{
"address": "10.133.13.15",
"cost": 1
}
],
"links": [
{
"rel": "self",
"href": "http://localhost:8080/inventory/api/v1/network-devices/10.133.13.12"
}
]
},
{
"address": "10.133.13.13",
"elementType": "server",
"neighbors": [],
"links": [
{
"rel": "self",
"href": "http://localhost:8080/inventory/api/v1/network-devices/10.133.13.13"
}
]
},
{
"address": "10.133.13.14",
"elementType": "wireless router",
"neighbors": [
{
"address": "10.133.13.16",
"cost": 5
}
],
"links": [
{
"rel": "self",
"href": "http://localhost:8080/inventory/api/v1/network-devices/10.133.13.14"
}
]
},
{
"address": "10.133.13.15",
"elementType": "switch",
"neighbors": [
{
"address": "10.133.13.17",
"cost": 4
},
{
"address": "10.133.13.18",
"cost": 4
},
{
"address": "10.133.13.19",
"cost": 4
}
],
"links": [
{
"rel": "self",
"href": "http://localhost:8080/inventory/api/v1/network-devices/10.133.13.15"
}
]
},
{
"address": "10.133.13.16",
"elementType": "laptop",
"neighbors": [],
"links": [
{
"rel": "self",
"href": "http://localhost:8080/inventory/api/v1/network-devices/10.133.13.16"
}
]
},
{
"address": "10.133.13.17",
"elementType": "desktop computer",
"neighbors": [
{
"address": "10.133.13.18",
"cost": 0
},
{
"address": "10.133.13.19",
"cost": 0
}
],
"links": [
{
"rel": "self",
"href": "http://localhost:8080/inventory/api/v1/network-devices/10.133.13.17"
}
]
},
{
"address": "10.133.13.18",
"elementType": "desktop computer",
"neighbors": [
{
"address": "10.133.13.19",
"cost": 0
}
],
"links": [
{
"rel": "self",
"href": "http://localhost:8080/inventory/api/v1/network-devices/10.133.13.18"
}
]
},
{
"address": "10.133.13.19",
"elementType": "desktop computer",
"neighbors": [],
"links": [
{
"rel": "self",
"href": "http://localhost:8080/inventory/api/v1/network-devices/10.133.13.19"
}
]
}
]