Updated dokumentation.md

This commit is contained in:
2026-05-27 15:50:25 +02:00
parent 9e45a7682a
commit d710fac865
+31
View File
@@ -186,6 +186,37 @@ Die `try_files`-Direktive ermöglicht Client-Side-Routing: Alle Pfade werden auf
</Routes>
```
**API-Client** (`frontend/src/api/client.ts`):
Der API-Client kapselt alle HTTP-Requests an das Backend in typisierte Funktionen. Er verwendet die nativ `fetch`-API und gibt die Antworten als TypeScript-Interfaces zurück:
```typescript
const API_BASE = "/api"; // Relativer Pfad → wird vom NGINX Proxy weitergeleitet
```
| Funktion | HTTP-Methode | Endpoint | Beschreibung |
|----------|-------------|----------|--------------|
| `createPaste(content)` | POST | `/api/pastes` | Erstellt einen neuen Paste |
| `getPaste(id)` | GET | `/api/pastes/{id}` | Ruft einen Paste ab |
| `deletePaste(id, token)` | DELETE | `/api/pastes/{id}?token=...` | Löscht einen Paste (mit Token) |
| `listPastes(adminPassword)` | GET | `/api/admin/pastes` | Listet alle Pastes (Admin) |
| `adminDeletePaste(id, pw)` | DELETE | `/api/admin/pastes/{id}` | Löscht einen Paste (Admin) |
Die Funktionen werden von den Page-Komponenten importiert und genutzt. Beispiel aus `HomePage.tsx`:
```typescript
const result = await createPaste(content);
navigate(`/paste/${result.id}?token=${result.delete_token}`);
```
Die Admin-Funktionen senden das Passwort über den `X-Admin-Password` Header:
```typescript
const res = await fetch(`${API_BASE}/admin/pastes`, {
headers: { "X-Admin-Password": adminPassword },
});
```
### 3.3 Backend (`backend/`)
**Aufgabe**: Stellt die REST-API bereit und kommuniziert mit der Datenbank.