|
| 1 | +@startuml component-overview |
| 2 | + |
| 3 | +!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml |
| 4 | + |
| 5 | +skinparam linetype polyline |
| 6 | + |
| 7 | +title [Component Overview] HMPPS Integration API |
| 8 | + |
| 9 | +System_Ext(consumer, "Consumer Application", "An authenticated consumer of the Integration API.") |
| 10 | + |
| 11 | +Boundary(spring_boot_api, "HMPPS Integration REST API", "Spring Boot Kotlin API"){ |
| 12 | + Container(controller, "Controller", "Spring Boot API Controller", "Receives the request, uses Spring Boot functionality to route to the correct method, also validates incoming requests. Each method has a matching service. Also commonly known as a 'resource'.") |
| 13 | + Container(service, "Service", "Spring Boot Service Bean", "Responsible for deciding which gateways to call to get the necessary data, as well as consolidating responses from one or many gateways. Also commonly known as a 'use case'") |
| 14 | + Container(gateway, "Gateway", "Spring Boot Component Bean", "Makes a request on upstream systems to return data to the calling service. Converts response data into domain models for the service.") |
| 15 | +} |
| 16 | + |
| 17 | +System_Ext(upstream, "Upstream Systems", "Integrated systems where data is retrieved from.") |
| 18 | + |
| 19 | + |
| 20 | +Rel(consumer, controller, "Makes API calls to", "JSON/HTTPS") |
| 21 | +Rel_Down(controller, service, "Uses") |
| 22 | +Rel_Down(service, gateway, "Uses") |
| 23 | +Rel_Down(gateway, upstream, "Makes API calls to", "JSON/HTTPS") |
| 24 | + |
| 25 | +SHOW_DYNAMIC_LEGEND() |
| 26 | + |
| 27 | +@enduml |
0 commit comments