Updated dokumentation.md
This commit is contained in:
@@ -186,6 +186,37 @@ Die `try_files`-Direktive ermöglicht Client-Side-Routing: Alle Pfade werden auf
|
|||||||
</Routes>
|
</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/`)
|
### 3.3 Backend (`backend/`)
|
||||||
|
|
||||||
**Aufgabe**: Stellt die REST-API bereit und kommuniziert mit der Datenbank.
|
**Aufgabe**: Stellt die REST-API bereit und kommuniziert mit der Datenbank.
|
||||||
|
|||||||
Reference in New Issue
Block a user