curenect / api-adapter-toolchain
Curenect API Adapter and Service Development Toolchain
1.0.0
2025-07-08 18:06 UTC
Requires
- php: ^8.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- phpstan/phpstan: ^1.10
- phpstan/phpstan-deprecation-rules: ^1.1
- phpstan/phpstan-strict-rules: ^1.5
- phpunit/phpunit: ^11.0
- rector/rector: ^1.0
- vimeo/psalm: ^5.0
Suggests
- cebe/openapi: For OpenAPI specification parsing
- doctrine/orm: For Service projects with database
- justinrainbow/json-schema: For JSON schema validation
- stoplight/spectral: For OpenAPI linting (via Docker)
- symfony/framework-bundle: For Service projects
This package is not auto-updated.
Last update: 2025-07-24 13:50:57 UTC
README
Eine spezialisierte Toolchain für die Entwicklung von API-Adaptern und Services mit rollenspezialisierter Test-Strategie.
🎯 Konzept
API-Adapter (OpenAPI-Gatekeeper)
- Intensive OpenAPI-Validierung (blocking)
- Umfassende Model-Tests (auto-generiert)
- Performance & Security Tests
- Contract-Testing (API-Spezifikation)
Service (Orchestrator)
- Mock-basierte Integration-Tests
- E2E-Workflow-Validierung
- Leichtgewichtige OpenAPI-Compliance
- Business-Logic-Focus
🚀 Quick Start
Neue Projekte
# Adapter-Projekt erstellen
composer create-project curenect/api-adapter-toolchain my-api-adapter
cd my-api-adapter
php vendor/curenect/api-adapter-toolchain/scripts/setup-project.php . my-api-adapter adapter
# Service-Projekt erstellen
composer create-project curenect/api-adapter-toolchain my-service
cd my-service
php vendor/curenect/api-adapter-toolchain/scripts/setup-project.php . my-service service
Bestehende Projekte
# Toolchain installieren
composer require --dev curenect/api-adapter-toolchain
# Für Adapter-Projekte
composer run install-adapter
# Für Service-Projekte
composer run install-service
🛠️ Verwendung
Adapter-Entwicklung
# Setup
make setup
make docker-dev
# Intensive OpenAPI-Validierung
make validate-openapi-strict # BLOCKING für CI
# Umfassende Tests
make test-comprehensive # Alle Tests
make test-openapi-compliance # OpenAPI-Compliance
make test-models # Auto-generierte Model-Tests
# Quality (Level 8)
make quality # PHPStan Level 8, Psalm strict
Service-Entwicklung
# Setup
make setup
make docker-dev
# Effiziente Mock-basierte Tests
make test-e2e # E2E-Workflows mit Mock
make test-compliance # Leichtgewichtige OpenAPI-Check
make test-integration # Service-Integration
# Mock-Server
make mock-start # Mock-API starten
make mock-stop # Mock-API stoppen
# Quality (Level 6-7)
make quality # PHPStan Level 6-7, moderates Psalm
📁 Projekt-Struktur
Adapter-Struktur
my-api-adapter/
├── lib/ # Generierte OpenAPI-Klassen
│ ├── Api/ # API-Klassen
│ └── Model/ # Model-Klassen
├── test/ # Intensive Tests
│ ├── Api/ # API-Tests
│ ├── Model/ # Model-Tests (auto-generiert)
│ ├── OpenApi/ # OpenAPI-Compliance-Tests
│ ├── Performance/ # Performance-Tests
│ └── Security/ # Security-Tests
├── scripts/ # Validierungs-Scripts
├── openapi.yml # OpenAPI-Spezifikation
└── Makefile # Adapter-spezifische Commands
Service-Struktur
my-service/
├── src/ # Symfony Service-Code
│ ├── Controller/
│ ├── Service/
│ └── Exception/
├── tests/ # Effiziente Tests
│ ├── Unit/ # Service-Logic-Tests
│ ├── Integration/ # Service-Integration-Tests
│ ├── E2E/ # Workflow-Tests (mit Mock)
│ └── Mock/ # Mock-Server-Konfiguration
├── config/ # Symfony-Konfiguration
└── Makefile # Service-spezifische Commands
🔧 Konfiguration
Adapter-Konfiguration
- PHPUnit: Strikte Coverage-Anforderungen (95%)
- PHPStan: Level 8 (maximale Strenge)
- Psalm: Error Level 1 (alle Fehler sind kritisch)
- Docker: Optimiert für intensive Validierung
Service-Konfiguration
- PHPUnit: Moderate Coverage-Anforderungen (85%)
- PHPStan: Level 6-7 (balancierte Strenge)
- Psalm: Error Level 3 (pragmatische Validierung)
- Docker: Optimiert für schnelle Workflows
🔄 GitLab CI Integration
Permanente CI-Templates
Die Toolchain stellt GitLab CI Templates bereit, die per include
eingebunden werden:
# .gitlab-ci.yml (automatische Erkennung)
include:
- project: 'curenect/api-adapter-toolchain'
file: '/ci/auto-detect-pipeline.yml'
ref: main
# Oder explizit für Adapter:
include:
- project: 'curenect/api-adapter-toolchain'
file: '/ci/adapter-pipeline.yml'
ref: main
# Oder explizit für Service:
include:
- project: 'curenect/api-adapter-toolchain'
file: '/ci/service-pipeline.yml'
ref: main
Adapter-Pipeline (~45 min)
stages:
- validate # < 2 min - BLOCKING OpenAPI Validation
- test-models # < 5 min - Auto-generated Model Tests
- test-api # < 10 min - API Integration Tests
- quality # < 8 min - Static Analysis (PHPStan L8)
- performance # < 15 min - Performance & Security Tests
- compliance # < 5 min - Contract Testing
Service-Pipeline (~25 min)
stages:
- validate # < 1 min - Fast validation
- test-unit # < 3 min - Service logic tests
- test-e2e # < 8 min - Mock-based workflow tests
- quality # < 5 min - Lighter static analysis
- compliance # < 2 min - Lightweight OpenAPI compliance
Cross-Project-Features
# Service nutzt Adapter-Artefakte
include:
- project: 'curenect/api-adapter-toolchain'
file: '/ci/cross-project.yml'
ref: main
variables:
ADAPTER_PROJECT: "curenect/bestell-api-adapter"
📋 Verfügbare Commands
Gemeinsame Commands
make help
- Alle verfügbaren Commands anzeigenmake setup
- Projekt-Setupmake clean
- Cleanupmake docker-dev
- Development-Environment startenmake test
- Tests ausführenmake quality
- Quality-Checksmake ci
- Komplette CI-Pipeline
Adapter-spezifische Commands
make validate-openapi-strict
- Strenge OpenAPI-Validierungmake test-comprehensive
- Umfassende Test-Suitemake test-openapi-compliance
- OpenAPI-Compliance-Testsmake test-models
- Auto-generierte Model-Testsmake test-performance
- Performance-Testsmake test-security
- Security-Tests
Service-spezifische Commands
make test-e2e
- E2E-Workflow-Testsmake test-compliance
- Leichtgewichtige Compliance-Checksmake mock-start/stop
- Mock-Server-Kontrollemake cache-clear
- Symfony-Cache leerenmake routes
- Verfügbare Routes anzeigenmake doctrine-migrate
- Doctrine-Migrationen
🎭 Mock-Server-Integration
Adapter-Mocks
- Für Integration-Tests
- Performance-Baseline-Validierung
- Security-Test-Szenarien
Service-Mocks
- E2E-Workflow-Tests
- Vertraut auf Adapter-Validierung
- Fokus auf Business-Logic
🔍 Quality-Gates
Adapter (Gatekeeper)
- Coverage: > 95%
- PHPStan: Level 8, keine Fehler
- Psalm: Error Level 1, blocking
- OpenAPI: Strikte Validierung, blocking
Service (Orchestrator)
- Coverage: > 85%
- PHPStan: Level 6-7, moderate Strenge
- Psalm: Error Level 3, warnings erlaubt
- OpenAPI: Leichtgewichtige Compliance, non-blocking
🔧 Anpassungen
Projekt-spezifische Erweiterungen
# Makefile.local (automatisch included)
deploy: ## Deploy to staging
@echo "Deploying to staging..."
# Custom deployment logic
custom-test: ## Run custom tests
@echo "Running custom tests..."
# Custom test logic
Environment-Variablen
# .env für Adapter
ADAPTER_TEST_MODE=true
OPENAPI_VALIDATION_STRICT=true
PERFORMANCE_BASELINE_MS=100
# .env für Service
SERVICE_TEST_MODE=true
SYMFONY_ENV=dev
MOCK_API_BASE_URL=http://localhost:4011
🎯 Philosophie
Adapter = OpenAPI-Gatekeeper
- Maximale Sicherheit durch intensive OpenAPI-Validierung
- Umfassende Test-Abdeckung für alle Models und APIs
- Performance- und Security-Anforderungen absichern
- Contract-Compliance durchsetzen
Service = Orchestrator
- Vertraut auf intensive Adapter-Validierung
- Fokus auf Business-Logic und Workflows
- Effiziente Mock-basierte Tests
- Schnelles Feedback für Entwickler
🆘 Support
Hilfe anzeigen
make help # Projekt-Commands
composer run --list # Toolchain-Commands
Debugging
make docker-dev # Development-Environment
docker-compose logs # Container-Logs
make quality # Quality-Checks ausführen
📦 Installation und Setup
Permanente Integration (empfohlen)
Die Toolchain wird als dauerhaftes Composer-Package installiert:
composer require --dev curenect/api-adapter-toolchain
Permanente Vorteile:
- Scripts bleiben in der Toolchain und werden über
vendor/
aufgerufen - Konfigurationen nutzen
includes
für zentrale Wartung - Updates propagieren automatisch zu allen Projekten
- Shared Testing-Classes für einheitliche Qualität
Verwendung nach Installation
# Toolchain-Status prüfen
make toolchain-status
composer run toolchain-status
# Updates prüfen und anwenden
make toolchain-check # Verfügbare Updates anzeigen
make toolchain-update # Updates anwenden
# Scripts permanent nutzen
make validate-openapi-strict # Nutzt vendor/curenect/.../scripts/
make generate-model-tests # Nutzt Toolchain-Scripts
# Konfigurationen per Include
# phpstan.neon → includes vendor/curenect/.../configs/phpstan.adapter.neon
Curenect API Adapter Toolchain - Spezialisierte Entwicklung für API-Adapter und Services