API updadte
This commit is contained in:
102
README.md
102
README.md
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user