OpenAPI: verificare il contratto oltre la documentazione

In sintesi

OpenAPI descrive interfacce HTTP per strumenti software. Swagger identifica un ecosistema di strumenti; mostrare la documentazione non prova l’applicazione del contratto.

Archivio vuoto con documenti e supporti per prove digitali Illustrazione · scena fittizia
In questo articolo

Distinguere descrizione e applicazione

Fissare una versione supportata dagli strumenti. Descrivere parametri, corpi, risposte e requisiti di sicurezza. Applicazione e gateway devono comunque far rispettare i requisiti dichiarati.

ElementoCosa descriveControllo aggiuntivo
SchemaStruttura e vincoliValidazione effettiva e regole funzionali.
Risposta documentataStato e contenuto attesiConformità delle risposte reali.
Requisito di sicurezzaMeccanismo e diritti dichiaratiControllo effettivo per operazione.
EsempioUn caso illustrativoCoerenza, assenza di segreti e casi limite.

Rivedere prima di condividere

  • Controllare campi obbligatori, tipi, intervalli, paginazione, errori e formati. Usare esempi fittizi coerenti con gli schemi, senza segreti o dati cliente.
  • Confrontare descrizione e scambi reali in ambiente controllato. Provare credenziali mancanti, permessi insufficienti e separazione tra account.
  • Verificare riferimenti esterni e strumenti che li risolvono. Ripulire la descrizione pubblica e proteggere ambienti e operazioni privati.

Mantenere la documentazione

Rivedere le differenze e assegnare un responsabile. Un client generato o un esempio può rispettare la struttura e ignorare regole funzionali. Le console interattive richiedono ambiente adatto, diritti limitati e chiara segnalazione delle operazioni modificative.

Fonti primarie

Confrontare OpenAPI con il servizio in esecuzione.

Una descrizione OpenAPI utile include risposte in caso di errore, schemi ed esempi effettivamente riscontrati dai clienti. Quando la documentazione e l'API divergono, un'integrazione può superare una demo ma fallire in produzione.

  • Confrontare i casi di successo e di errore con la descrizione.
  • Documentare i valori opzionali, la paginazione e i limiti operativi.
  • Testare un cliente rappresentativo prima di modificare il contratto.

Fonte primaria: IETF RFC 9457 — Problem Details for HTTP APIs. Metodo correlato: consultare la guida pratica.

Archivi ZIP e TAR: estrarre entro limiti di percorso e risorse

Validare percorsi, collegamenti e dati espansi prima di promuovere i file estratti.

  • Estrai in una nuova cartella non pubblica con permessi minimi. Rifiuta percorsi assoluti, risalite, link e file speciali inutili. Controlla destinazioni risolte e collisioni secondo il sistema, comprese maiuscole e minuscole. Un prefisso testuale non prova confinamento.
  • Imposta limiti per file e totali su byte scritti, voci, profondità, tempo e risorse. Non affidarti solo alla dimensione compressa o dichiarata. Rifiuta archivi annidati inutili; altrimenti condividi un budget globale. Aggiorna libreria e filtri.
  • Prova ../, percorso assoluto, link, duplicato e budget superato. Un arresto lascia il lotto non pubblicabile e non sostituisce file esistenti. Valida tipi e contenuti prima della promozione; pulisci la cartella verificando la destinazione.

Caso di accettazione riproducibile

Esempio fittizio: questi dati non descrivono clienti o risultati osservati.

Vedi dati del caso
{
    "compressed_mb": 2,
    "expanded_mb": 600,
    "aggregate_budget_mb": 100,
    "first_files_valid": true,
    "expected": "stop_on_actual_overrun_and_do_not_promote"
}

Decisione attesa

Esempio fittizio: 2 MB compressi producono 600 MB con budget di 100 MB. Arresta al superamento dei byte scritti e non pubblicare, anche se i primi file sembrano validi.

Python — tarfile extraction filters and further verification

Un archivio piccolo o un filtro garantisce sicurezza?

No. Può espandersi molto. Aggiungi limiti di risorse, regole dei percorsi e validazione dei file estratti.

Fonte primaria: Python — tarfile extraction filters and further verification. Metodo correlato: consultare la guida pratica.

Errori API: tipi, stati e prove

Le note dettagliate di questa edizione sono disponibili in inglese.

Include errors in contract tests

A new type URI, removed extension or changed status may alter consumer behaviour. Failure examples are part of the contract alongside successful responses.

  • Replay existing clients against representative refusals.
  • Check tolerance of unknown extensions and localised text.
  • Document migration of a problem identity and actually observed use.

Explore problem types and eight fictional responses →

IETF · M. Nottingham, E. Wilde, S. Dalal · RFC 9457 · July 2023 · obsoletes RFC 7807 · §3.1, §3.2, §4.2, §5