Bestehende Kunden-Integrationen der Altportale laufen nach dem Relaunch weiter, ohne dass Kunden etwas umstellen muessen: 1. legacy:import-api-keys uebernimmt die api_keys aus den Legacy-DBs (sf_guard_user_profile) als Sanctum-Tokens mit identischem Secret (Sanctum loest Tokens ohne id|-Praefix per sha256-Hash auf) — nur fuer berechtigte Nutzer (aktiver Zahlungsstatus/Bestandsschutz, ApiAccessEligibilityService); idempotent, mit Dry-Run. Probe gegen die lokalen Snapshots: 406 Keys wuerden uebernommen. 2. Die Auth-Middleware uebersetzt die alten Uebergabeformen (X-ApiKey- Header, api_key-Parameter) fuer gueltige Keys in Bearer; unbekannte Keys erhalten weiterhin 410 mit Migrationshinweis. 3. Die dokumentierten /service/...-Pfade der Alt-API sind als Aliasse auf die v1-Controller gelegt (pressreleases inkl. Bilder, companies lesend); nicht uebernommene Alt-Endpoints (Pressemappen/Kontakte anlegen) antworten 410 mit Hinweis auf Kundenkonto und neue Doku. API-Seite + OpenAPI entsprechend aktualisiert; Go-Live-Checkliste um den Import-Schritt (nach dem Grandfathering) ergaenzt. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
27 lines
1 KiB
PHP
27 lines
1 KiB
PHP
<?php
|
|
|
|
use Tests\TestCase;
|
|
|
|
test('api v1 documentation is publicly available', function () {
|
|
/** @var TestCase $this */
|
|
$this->get('/docs/api/v1')
|
|
->assertOk()
|
|
->assertHeader('content-type', 'application/yaml; charset=UTF-8')
|
|
->assertSee('openapi: 3.1.0', false)
|
|
->assertSee('/press-releases:', false)
|
|
// Übernahme der Legacy-Integrationen (06.07.): Alt-Schlüssel bleiben
|
|
// gültig, unbekannte bekommen den Migrationshinweis.
|
|
->assertSee('Bestehende API-Schlüssel der Altportale wurden übernommen', false);
|
|
});
|
|
|
|
test('the public api page documents the real endpoints', function () {
|
|
/** @var TestCase $this */
|
|
$this->get('https://pressekonto.test/de/api')
|
|
->assertSuccessful()
|
|
->assertSeeText('API-Dokumentation')
|
|
->assertSee('/press-releases/{id}/submit', false)
|
|
->assertSee('press-releases:write', false)
|
|
// Keine Fantasie-Features mehr (OAuth/SDKs/Webhooks gab es nie).
|
|
->assertDontSee('OAuth 2.0')
|
|
->assertDontSee('api.example.com');
|
|
});
|