Skip to content
This repository has been archived by the owner on Oct 4, 2024. It is now read-only.

Add diagram for backend frontend communication #236

Merged
merged 2 commits into from
Jun 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion docs/.vitepress/config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,13 @@ export default withMermaid({
{
text: 'Frontend',
link: '/development/frontend/overview',
items: [{ text: 'Testing', link: '/development/frontend/testing' }],
items: [
{ text: 'Testing', link: '/development/frontend/testing' },
{
text: 'Technical documentation',
link: '/development/frontend/technical documentation.md',
},
],
},
],
},
Expand Down
43 changes: 43 additions & 0 deletions docs/development/frontend/technical documentation.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,22 @@ frontend

Zusätlich befindet sich zu jeder Datei eine Testdatei.

### EventService

---

Der EventService wird verwendet, um Daten zwischen den Komponenten auszutauschen. Dazu müssen die Komponenten den EventService importieren und ihn im Konstruktor einbinden.

```ts
import { EventService } from 'app/services/event.service';

[...]

constructor(public eventService: EventService) {
this.eventService = eventService;
}
```

### LoaderService

---
Expand Down Expand Up @@ -97,3 +113,30 @@ constructor(private LoaderService: LoaderService) { }
---

Die Kommunikation mit dem Backend erfolgt über eine REST-API. Eine Service-Klasse sendet HTTP-Anfragen an das Backend, und die eingehenden Daten werden von den Komponenten genutzt. Der Service wird im Konstruktor der Komponenten aufgerufen.

#### Bsp:

Das folgende Diagramm veranschaulicht die Kommunikation, die zur Abfrage der "Tasks" vom Backend zuständig ist:

```mermaid
sequenceDiagram

actor U as User
participant D as RoadmapComponent
participant F as MainpageService
participant B as Backend

activate U
U->>D: ruft Seite auf

activate D
D->>F: löst getListOfAllTasks() aus

activate B
F->>B: schickt http-get Befehl
B->>F: response: Task als JSON

F->>D: seichert Daten in taskdata
D->>U: lädt die Daten in UI

```
Loading