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>
|
||||
```
|
||||
|
||||
**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.
|
||||
|
||||
Reference in New Issue
Block a user