Versionamento API
Versionamento API
L'API di sincronizzazione in ingresso è versionata tramite prefisso URL — /api/v1/*. Il registro in config/api.php dichiara il ciclo di vita di ogni versione e il middleware api.version (alias di App\Http\Middleware\EnforceApiVersion) lo applica al gruppo di rotte.
Stati del ciclo di vita
| Stato | Comportamento |
|---|---|
current |
Pienamente supportata. Le risposte portano X-API-Version. |
deprecated |
Ancora servita, con header Deprecation (RFC 9745), Sunset (RFC 8594) e Link: rel="deprecation". |
sunset |
Le richieste ricevono 410 Gone con corpo application/problem+json che indica la versione di destinazione. |
Una versione si ritira automaticamente al superamento di sunset_at — nessun intervento manuale.
Aggiungere una versione
- Crea i controller in
App\Http\Controllers\Api\V2. - Aggiungi un gruppo
Route::prefix('v2')->middleware(['api.version:v2', ...])inroutes/api.php. - Registra
'v2'inconfig/api.phpe impostav1sudeprecatedcon le datedeprecated_at/sunset_at.
Rotte non versionate — contratto stabile
/api/embed/*, /{company}/direct-booking, /{eventType}/event-type-booking e /webhooks/* non sono versionate: i siti esterni le incorporano e non possono migrare secondo i nostri tempi. Le modifiche non retrocompatibili richiedono una rotta parallela, mai una modifica.