Specifiche OpenAPI: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
{{T|lingua=inglese}}
 
FrescoBot (discussione | contributi)
m Bot: numeri di pagina nei template citazione
 
(34 versioni intermedie di 24 utenti non mostrate)
Riga 1:
{{Aggiornare|anno=2016|argomento=informatica}}
La '''Specifica OpenAPI''' (conosciuta originariamente come la Specifica Swagger) è una specifica per file di interfaccia leggibili dalle macchine per descrivere, produrre, consumare e visualizzare [[Web service|servizi web]] [[Representational State Transfer|RESTful]].<ref>{{Cite web|url=http://www.businesscloudnews.com/2015/11/06/linux-foundation-wants-to-extend-swagger-in-connected-buildings/|title=Linux Foundation wants to extend Swagger in connected buildings {{!}} Business Cloud News|access-date=2016-04-22}}</ref> Una serie di strumenti può generare codice, documentazione e test case dato un file di interfaccia.
 
La '''Specifica OpenAPI''' (conosciuta originariamente nota come la '''Specifica Swagger''') è una specifica per file di interfaccia leggibili dalle macchine, utilizzata per descrivere, produrre, consumare e visualizzare [[Web service|servizi web]] [[Representational State Transfer|RESTful]].<ref>{{CiteCita web|url=http://www.businesscloudnews.com/2015/11/06/linux-foundation-wants-to-extend-swagger-in-connected-buildings/|titletitolo=Linux Foundation wants to extend Swagger in connected buildings {{!}} Business Cloud News|access-dateaccesso=22 aprile 2016|dataarchivio=20 luglio 2018|urlarchivio=https://web.archive.org/web/20180720165819/http://www.businesscloudnews.com/2015/11/06/linux-04foundation-22wants-to-extend-swagger-in-connected-buildings/|urlmorto=sì}}</ref> UnaUn seriedocumento OpenAPI rappresenta una descrizione formale di strumentiun'[[Application programming interface|API]], che può essere utilizzata da diversi strumenti per generare codice, documentazione, e ''[[test case]]'' datoe unaltro file di interfacciaancora.
==Uso==
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 Uso ==
Le applicazioni implementate, basandosi su file di interfaccia OpenAPI, possono automaticamente generare automaticamente la documentazione didei metodi, dei parametri e dei modelli. Questo aiuta a sincronizzare la documentazione, le librerie [[client]] e il [[codice sorgente]].
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 ad inizio 2010.<ref>{{Cite web|title = swagger-api/swagger-spec|url = https://github.com/swagger-api/swagger-spec/wiki|website = GitHub|accessdate = 2015-12-01}}</ref>
 
== Storia ==
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 Open API Initiative. Una serie di società, incluse [[Google]], [[IBM]] e [[Microsoft]] sono soci fondatori.<ref>{{Cite news|url=http://www.programmableweb.com/news/%E2%80%8Bsmartbear-linux-foundation-launch-open-api-initiative-to-evolve-swagger/2015/11/10|title=SmartBear, Linux Foundation launch Open API Initiative to Evolve Swagger|last=|first=|date=2015-11-10|work=ProgrammableWeb|access-date=2016-04-21|via=}}</ref><ref>{{Cite web|url=http://www.linuxfoundation.org/news-media/announcements/2015/11/new-collaborative-project-extend-swagger-specification-building|title=New Collaborative Project to Extend Swagger Specification for Building Connected Applications and Services|website=www.linuxfoundation.org|access-date=2016-04-22}}</ref> Swagger ha donato la specifica Swagger al nuovo gruppo. Anche RAML e API Blueprint sono in esame da parte del gruppo.<ref>{{Cite web|url=http://www.infoworld.com/article/3014506/apis/in-2016-the-need-for-an-api-meta-language-will-crystallize.html|title=In 2016, the need for an API meta-language will crystallize|last=Montcheuil|first=Yves de|website=InfoWorld|access-date=2016-04-25}}</ref><ref>{{Cite web|url=http://www.infoq.com/news/2016/04/Amazon-API-Gateway-Swagger|title=Amazon API Gateway Now Supports Swagger Definition Import|website=InfoQ|access-date=2016-04-25}}</ref>
Sia la specifica siache l'implementazione di un [[framework]] sono partitenate come iniziative dadi Wordnik. Swagger è stato sviluppato dall'uso di Wordnik durante lo sviluppo di Wordnik Developer e ladella sottostante API. Lo sviluppo di Swagger è partito adiniziato all'inizio del 2010.<ref name=git>{{CiteCita web|title titolo= swagger-api/swagger-spec|url = https://github.com/swagger-api/swagger-spec/wiki|website sito= GitHub|accessdate accesso=1º dicembre 2015-12-01}}</ref>
 
Nel novembre 2015, SmartBear, la società che ha sostenuto Swagger, ha annunciato che stava aiutandocontribuendo aalla crearecreazione di una nuova organizzazione, sotto la sponsorizzazione della [[Linux Foundation]], chiamata Open APIOpenAPI Initiative. Una serie di società, incluse [[Google]], [[IBM]] e [[Microsoft]], sono soci fondatori.<ref>{{CiteCita news|url=http://www.programmableweb.com/news/%E2%80%8Bsmartbear-linux-foundation-launch-open-api-initiative-to-evolve-swagger/2015/11/10|titletitolo=SmartBear, Linux Foundation launch Open API Initiative to Evolve Swagger|lastpubblicazione=ProgrammableWeb|firstaccesso=21 aprile 2016|datedataarchivio=2015-11-109 novembre 2016|workurlarchivio=ProgrammableWeb|accesshttps://web.archive.org/web/20161109214454/http://www.programmableweb.com/news/%E2%80%8Bsmartbear-date=2016linux-04foundation-21launch-open-api-initiative-to-evolve-swagger/2015/11/10|viaurlmorto=}}</ref><ref>{{CiteCita web|url=httphttps://www.linuxfoundation.org/news-media/announcements/2015/11/new-collaborative-project-extend-swagger-specification-building|titletitolo=New Collaborative Project to Extend Swagger Specification for Building Connected Applications and Services|websiteaccesso=22 aprile 2016|urlmorto=sì|urlarchivio=https://web.archive.org/web/20160427104213/http://www.linuxfoundation.org|access/news-date=2016media/announcements/2015/11/new-04collaborative-22project-extend-swagger-specification-building|dataarchivio=27 aprile 2016}}</ref> Nello stesso anno, Swagger ha donato la specifica Swagger 2.0 al nuovo gruppo OpenAPI Initiative.<ref>{{Cita web|url=https://spec.openapis.org/oas/v3.1.0#appendix-a-revision-history|titolo=OpenAPI Specification v3.1.0 {{!}} Introduction, Definitions, & More|sito=spec.openapis.org|accesso=2024-03-25}}</ref> Anche RAML e API Blueprint sono in esame da parte del gruppo.<ref>{{CiteCita web|url=http://www.infoworld.com/article/3014506/apis/in-2016-the-need-for-an-api-meta-language-will-crystallize.html|titletitolo=In 2016, the need for an API meta-language will crystallize|lastcognome=Montcheuil|firstnome=Yves de|websitesito=InfoWorld|access-dateaccesso=25 aprile 2016-04-25}}</ref><ref>{{CiteCita web|url=http://www.infoq.com/news/2016/04/Amazon-API-Gateway-Swagger|titletitolo=Amazon API Gateway Now Supports Swagger Definition Import|websitesito=InfoQ|access-dateaccesso=25 aprile 2016-04-25}}</ref>
Il 1 gennaio 2016 la specifica Swagger è stata rinominata la Specifica OpenAPI, ed è stata spostata in una nuova repository su GitHub.
 
Il 1º gennaio 2016, la specifica Swagger è stata rinominata la Specifica OpenAPI, ed è stata spostata in unaun nuovanuovo [[repository]] su [[GitHub]].
==Caratteristiche==
La Specifica OpenAPI non richiede un linguaggio specifico. Inoltre è estensibile su nuove tecnologie e protocolli oltre l'HTTP.
The OpenAPI Specification is language-agnostic. It is also extensible into new technologies and protocols beyond HTTP.{{fact|date=November 2015}}
 
Il 26 luglio 2017, l'OpenAPI Initiative ha rilasciato la versione 3.0.0 della specifica.<ref>{{Cita web|url=https://www.openapis.org/blog/2017/07/26/the-oai-announces-the-openapi-specification-3-0-0|titolo=The OAI Announces the OpenAPI Specification 3.0.0|autore=OpenAPI Initiative|sito=OpenAPI Initiative|data=2017-07-26|lingua=en-US|accesso=2024-10-13}}</ref> Tra le novità possiamo notare una semplificazione della struttura, con maggiore riutilizzabilità dei componenti; un miglioramento delle definizioni di sicurezza, inclusa la rinominazione dei flussi [[OAuth]] 2 per corrispondere alla specifica OAuth2; l'aggiunta delle [[callback]] e dei link.<ref>{{Cita web|url=https://swagger.io/blog/news/whats-new-in-openapi-3-0/|titolo=What is OpenAPI 3.0? {{!}} Swagger Blog|sito=SmartBear.com|accesso=2024-10-13}}</ref>
Con la specifica dichiarativa delle risorse, i clients possono comprendere e consumare servizi senza conoscere l'implementazione del server o accedere al codice del server.{{fact|date=November 2015}}
 
Il 15 febbraio 2021, l'OpenAPI Initiative ha rilasciato la versione 3.1.0 della specifica.<ref>{{Cita web|url=https://www.linux.com/news/openapi-specification-3-1-0-available-now/|titolo=OpenAPI Specification 3.1.0 Available Now|autore=Linux com Editorial Staff|sito=Linux.com|data=2021-04-26|lingua=en-US|accesso=2024-10-13}}</ref> Le principali modifiche includono l'allineamento con i vocabolari dello schema [[JavaScript Object Notation|JSON]], l'introduzione di nuovi elementi di primo livello per descrivere i [[webhook]] registrati e gestiti fuori banda, il supporto per identificare le licenze [[Application programming interface|API]] utilizzando l'identificatore standard [[Software Package Data Exchange|SPDX]], la possibilità di includere descrizioni accanto all'uso dei riferimenti di schema e una modifica che rende l'oggetto PathItems opzionale, semplificando così la creazione di librerie riutilizzabili di componenti.<ref>{{Cita web|url=https://nordicapis.com/whats-new-in-openapi-3-1-0/|titolo=What’s New in OpenAPI 3.1.0? {{!}} Nordic APIs {{!}}|autore=Tyler Charboneau|sito=Nordic APIs|data=2021-04-07|lingua=en-US|accesso=2024-10-13}}</ref><ref>{{Cita web|url=https://www.openapis.org/blog/2021/02/18/openapi-specification-3-1-released|titolo=OpenAPI Specification 3.1.0 Released|autore=OpenAPI Initiative|sito=OpenAPI Initiative|data=2021-02-18|lingua=en-US|accesso=2024-10-13}}</ref><ref>{{Cita web|url=https://www.openapis.org/blog/2021/02/16/migrating-from-openapi-3-0-to-3-1-0|titolo=Migrating from OpenAPI 3.0 to 3.1.0|autore=OpenAPI Initiative|sito=OpenAPI Initiative|data=2021-02-16|lingua=en-US|accesso=2024-10-13}}</ref>
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 XML.{{fact|date=November 2015}}
 
== Caratteristiche ==
==Voci correlate==
La specifica OpenAPI non richiede un [[linguaggio di programmazione]] specifico. Inoltre, è estendibile per l'uso con nuove tecnologie e protocolli. Gli strumenti OpenAPI sono generalmente compatibili con le specifiche RESTful e descrivono come un'API è organizzata e come interagisce con gli utenti, facendo uso di strumenti come Swagger UI, Swagger Codegen, Swagger Hub e Swagger Editor. L'architettura di base della specifica si concentra su tre componenti principali:
* [[Representational state transfer|Representational State Transfer]]
 
* Descrizione di un'API
* Definizione dei parametri di un'API
* Documentazione dei metodi di un'API
 
== Versioni ==
 
=== Swagger ===
* 1.0 (2011)
* 2.0 (2014)
 
=== OpenAPI ===
* 3.0.0 (2017)
* 3.1.0 (2021)
 
==Note==
<references/>
{{Reflist}}
 
==Bibliografia==
*{{Cite conferenceCita conferenza| doi = 10.1109/ICWS.2014.30| title titolo= A Model-Driven Approach for REST Compliant Services| work collana= 2014 IEEE International Conference on Web Services| conference conferenza= [[International Conference on Web Services|ICWS]] 2014| pages pp= 129–136129-136| year anno= 2014| last1 cognome1= Haupt | first1 nome1= F. | last2 cognome2= Karastoyanova | first2 nome2= D. | last3 cognome3= Leymann | first3 nome3= F. | last4 cognome4= Schroth | first4 nome4= B. | isbn = 978-1-4799-5054-6}}
{{refbegin}}
 
*{{Cite conference | doi = 10.1109/ICWS.2014.30| title = A Model-Driven Approach for REST Compliant Services| work = 2014 IEEE International Conference on Web Services| conference = [[International Conference on Web Services|ICWS]] 2014| pages = 129–136| year = 2014| last1 = Haupt | first1 = F. | last2 = Karastoyanova | first2 = D. | last3 = Leymann | first3 = F. | last4 = Schroth | first4 = B. | isbn = 978-1-4799-5054-6}}
==Voci correlate==
{{refend}}
* [[Application programming interface]]
* [[RESTful]]
* [[Linux Foundation]]
* [[GitHub]]
 
==Collegamenti esterni==
* {{Collegamenti esterni}}
*[https://openapis.org/ Open API Initiative (OAI) website]
*[http://swagger.io Swagger website]
*[https://github.com/OAI/OpenAPI-Specification OpenAPI Specification on GitHub]
 
{{portale|informatica}}
[[Categoria:Architettura del software]]