💡 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.
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:
Le regole che il checker utilizzata sono gestite in un repository dedicato: api-oas-checker-rules.
Al momento, i ruleset sono:
- spectral-modi.yml, o Italian Guidelines, quelle di default
- spectral.yml, o Italian Guidelines Extended
- spectral-generic.yml, o Best Practices Only
- spectral-security.yml, o Extra Security Checks
- spectral-full.yml, o Italian Guidelines Extended + Extra Security Checks
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.
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
Grazie a Paolo Falomo, Francesco Marinucci, Giuseppe De Marco e Vincenzo Chianese per i suggerimenti ed i contributi!