API updadte

This commit is contained in:
2025-11-08 23:44:33 +01:00
parent 81374cc659
commit 5835eb15ed
29 changed files with 4066 additions and 54 deletions

102
README.md
View File

@@ -14,6 +14,8 @@ Eine moderne Webanwendung zur Immobilienberechnung, entwickelt mit Symfony 7.3,
- **Öffentliche Ressourcen**: Bundesländer und Heizungstypen ohne Authentifizierung abrufbar
- **Docker-Setup**: Vollständig containerisierte Entwicklungsumgebung
- **Datenbank-Migrationen**: Versionskontrollierte Datenbankschema-Verwaltung mit Doctrine
- **Testing**: Umfassende Test-Suite mit PHPUnit für Unit- und Funktions-Tests
- **Code Quality**: PHP-CS-Fixer für konsistenten Code-Style nach Symfony Standards
- **CORS-Unterstützung**: Konfigurierbare CORS-Einstellungen für API-Zugriffe
- **phpMyAdmin**: Integriertes Datenbank-Verwaltungstool
@@ -182,6 +184,106 @@ Wichtigste Endpunkte:
- Grundbuchkosten: ca. 0,5% des Kaufpreises
- Grunderwerbsteuer: abhängig vom Bundesland (3,5% - 6,5%)
## Testing & Code Quality
Das Projekt verwendet **PHPUnit** für Unit- und Funktionstests sowie **PHP-CS-Fixer** für Code-Qualität und Linting.
### Tests ausführen
#### Alle Tests ausführen
```bash
docker-compose exec web php bin/phpunit
```
#### Tests mit Ausgabedetails
```bash
docker-compose exec web php bin/phpunit --verbose
```
#### Nur bestimmte Testklassen ausführen
```bash
# Entity-Tests
docker-compose exec web php bin/phpunit tests/Entity
# API-Tests
docker-compose exec web php bin/phpunit tests/Api
# Einzelne Testklasse
docker-compose exec web php bin/phpunit tests/Entity/UserTest.php
```
#### Code Coverage Report (optional)
```bash
docker-compose exec web php bin/phpunit --coverage-text
```
### Code-Linting mit PHP-CS-Fixer
#### Code-Style prüfen (Dry-Run)
```bash
docker-compose exec web vendor/bin/php-cs-fixer fix --dry-run --diff
```
#### Code automatisch formatieren
```bash
docker-compose exec web vendor/bin/php-cs-fixer fix
```
#### Bestimmte Verzeichnisse prüfen
```bash
# Nur src/ Verzeichnis
docker-compose exec web vendor/bin/php-cs-fixer fix src --dry-run
# Nur tests/ Verzeichnis
docker-compose exec web vendor/bin/php-cs-fixer fix tests --dry-run
```
### Test-Struktur
```
tests/
├── Entity/ # Unit-Tests für Entities
│ ├── UserTest.php # User-Entity Tests
│ ├── ImmobilieTest.php # Immobilie-Entity Tests (inkl. Kaufnebenkosten)
│ ├── BundeslandTest.php # Bundesland-Entity Tests
│ └── HeizungstypTest.php # Heizungstyp-Entity Tests
└── Api/ # Funktions-/API-Tests
├── BundeslandApiTest.php # Bundesländer API-Tests
├── HeizungstypApiTest.php # Heizungstypen API-Tests
└── ApiDocumentationTest.php # API-Dokumentations-Tests
```
### Test-Abdeckung
Die Tests decken folgende Bereiche ab:
**Entity-Tests:**
- User-Entity: API-Key-Generierung, Rollen, UserInterface-Methoden
- Immobilie-Entity: Gesamtflächen-Berechnung, Kaufnebenkosten-Berechnung
- Bundesland-Entity: Grunderwerbsteuer-Werte für alle Bundesländer
- Heizungstyp-Entity: CRUD-Operationen
**API-Tests:**
- Öffentlicher Zugriff auf Bundesländer und Heizungstypen (GET)
- Authentifizierung für CREATE-Operationen
- API-Dokumentation Zugänglichkeit
### Code-Style Regeln
Die PHP-CS-Fixer-Konfiguration (`.php-cs-fixer.dist.php`) verwendet:
- Symfony Coding Standards
- Short Array Syntax
- Sortierte Imports
- Trailing Commas in Multiline Arrays
- Und weitere PSR-12 kompatible Regeln
## Entwicklung
### Neue Entity erstellen