Questa voce o sezione deve essere rivista e aggiornata appena possibile.
Sembra infatti che questa voce contenga informazioni superate e/o obsolete. Se puoi, contribuisci ad aggiornarla.
La Specifica OpenAPI (originariamente nota come Specifica Swagger) è una specifica per file di interfaccia leggibili dalle macchine per descrivere, produrre, consumare e visualizzare servizi webRESTful.[1] Un documento OpenAPI rappresenta una descrizione formale di un'API che può essere utilizzata da diversi strumenti per generare codice, documentazione, test case e altro ancora.
Le applicazioni implementate, basandosi su file di interfaccia OpenAPI, possono automaticamente generare la documentazione di metodi, parametri e modelli. Questo aiuta a sincronizzare la documentazione, le librerie client e il codice sorgente.
Storia
Sia la specifica sia l'implementazione di un framework sono partite come iniziative da Wordnik. Swagger è stato sviluppato dall'uso di Wordnik durante lo sviluppo di Wordnik Developer e la sottostante API. Lo sviluppo di Swagger è partito a inizio 2010.[2]
Nel novembre 2015 SmartBear, la società che ha sostenuto Swagger, ha annunciato che stava aiutando a creare una nuova organizzazione, sotto la sponsorizzazione della Linux Foundation, chiamata OpenAPI Initiative. Una serie di società, incluse Google, IBM e Microsoft sono soci fondatori.[3][4] Nello stesso anno Swagger ha donato la specifica Swagger 2.0 al nuovo gruppo OpenAPI Initiative[5]. Anche RAML e API Blueprint sono in esame da parte del gruppo.[6][7]
Il 1 gennaio 2016 la specifica Swagger è stata rinominata la Specifica OpenAPI, ed è stata spostata in una nuova repository su GitHub.
Il 26 Luglio 2017, OpenAPI Initiative ha rilasciato la versione 3.0.0 della specifica.[8] Tra le novità possiamo notare una semplificazione della struttura, introducendo una maggiore riutilizzabilità dei componenti; un miglioramento delle definizioni di sicurezza tra cui la rinominazione dei flussi OAuth 2 per corrispondere alla specifica Oauth2; l'aggiunta delle callback e dei link.[9]
Il 15 febbraio 2021, OpenAPI Initiative ha rilasciato la versione 3.1.0 della specifica[10]. Le principali modifiche includono l'allineamento con i vocabolari dello schema JSON, l'introduzione di nuovi elementi di primo livello per descrivere i webhook che sono registrati e gestiti fuori banda, il supporto per identificare le licenze API utilizzando l'identificatore standard SPDX, la possibilità di includere descrizioni accanto all'uso dei riferimenti di schema e una modifica per rendere l'oggetto PathItems opzionale, semplificando così la creazione di librerie riutilizzabili di componenti.[11][12][13]
Caratteristiche
La Specifica OpenAPI non richiede un linguaggio specifico. Inoltre è estendibile su nuove tecnologie e protocolli oltre l'HTTP.[2]
Questo standard viene utilizzato per descrivere un'interfaccia in modo agnostico rispetto al linguaggio di programmazione utilizzato. In tal modo essa consente alle macchine e agli esseri umani di comprendere le caratteristiche di un servizio anche senza avere l'accesso al codice sorgente.[14]
Il framework UI Swagger permette sia a sviluppatori sia a non-sviluppatori di interagire con la API in una sandbox UI che offre una chiara intuizione di come la API risponde ai parametri e alle opzioni. Swagger può utilizzare sia JSON sia YAML.[2]
F. Haupt, D. Karastoyanova, F. Leymann e B. Schroth, A Model-Driven Approach for REST Compliant Services, ICWS 2014, collana 2014 IEEE International Conference on Web Services, 2014, pp. 129–136, DOI:10.1109/ICWS.2014.30, ISBN978-1-4799-5054-6.