Home

Awesome

Checker per API conformi al Modello di Interoperabilità

Join the #api channel API on forum.italia.it README in English

💡 Questo repository contiene un checker in-browser che verifica alcune delle regole per le API REST indicate nel Modello di Interoperabilità.

🗂️ I progetti associati sono indicati nell'API Starter Kit.

👨🏻‍💻 L'applicazione on-line pronta all'uso è disponibile qui.

⚙️ Il checker è basato su Spectral.

Perché Spectral? 🤔

Lo abbiamo preferito rispetto ad altri software perché non richiede l'utilizzo di database o componenti server a cui inviare i tuoi documenti OpenAPI (OAS Checker è una pagina statica deployata su GitHub Pages) e perché la maggior parte delle regole è descritta tramite file statici (e.g. YAML): tranne in casi specifici non è necessario quindi eseguire codice JavaScript. Inoltre, gli utenti possono sempre limitarsi ad importare le sole regole statiche.

Le alternative valutate, ugualmente valide, sono:

📦 Regole

Le regole che il checker utilizzata sono gestite in un repository dedicato: api-oas-checker-rules.

Al momento, i ruleset sono:

🔍 Eseguire il check delle API

Il modo più semplice per controllare un'API è di utilizzare questo checker, inserendo il contenuto dell'API e selezionando un set di regole (di default: Italian Guidelines). Cliccando su "Check" sarà possibile esaminare tutti gli errori, warning, info e hint rilevati da Spectral.

In alternativa, è possibile fare il check delle API tramite IDE, CLI e GitHub Action: si rimanda al seguente README del repo api-oas-checker-rules per tutte le informazioni.

🚀 Avviare la web app in locale

Questa web app è basata sulla libreria React e usa Webpack per generare il bundle dell'applicazione con il supporto di Babel per transpilare il codice JavaScript.

Per avviare l'applicazione:

$ yarn
$ yarn start

In alternativa:

$ docker-compose up --build start

e al termine della compilazione collegarsi a http://localhost:3000

✍🏻 Contributi

Grazie a Paolo Falomo, Francesco Marinucci, Giuseppe De Marco e Vincenzo Chianese per i suggerimenti ed i contributi!