Application programming interface: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m ho corretto la definizione generale di API in sostituzione alla vecchia: "procedure atte all'espletamento di un dato compito" in quanto troppo vaga e di significato inconsistente, ed ho specificato la differenza tra libreria ed API in modo che si capisse che non sono la stessa cosa.
Correggo link
 
(45 versioni intermedie di 31 utenti non mostrate)
Riga 1:
{{C|Rivedere la relazione tra api e librerie|informatica|febbraio 2024}}
{{F|informatica|febbraio 2024}}
[[File:Database management system diagram from 1978 workshop.png|thumb|alt=Application programming interface|Application programming interface]]
 
In un [[programma (informatica)|programma informatico]], con '''application programming interface''' ('''API''')<ref>In [[Lingua italiana|italiano]]inglese "interfacciaei-pi-ai", discandite programmazioneessendo diun applicazione"acronimo.</ref> ('''API'''), in italiano "[[Interfaccia (informatica) |interfaccia]] di programmazione di una dell'applicazione", si indica un insieme di [[funzione (informatica)|procedure]] (in genere raggruppate per strumenti specifici) atte a risolvereconsentire uno specifico problema dila comunicazione tra diversi computer o tra diversi software o tra diversi componenti di software<ref>{{Cita libro|nome=Martin|cognome=Reddy|titolo=API design for C++|url=https://www.worldcat.org/oclc/704559821|accesso=2022-05-16|data=2011|editore=Morgan Kaufmann|OCLC=704559821|ISBN=978-0-12-385004-1}}</ref>; spesso tale termine designa le [[Libreria (software)|librerie software]] di un [[linguaggio di programmazione]]<ref>{{cita web|https://docs.microsoft.com/en-us/dotnet/visual-basic/programming-guide/com-interop/walkthrough-calling-windows-apis|titolo=Walkthrough: Calling Windows API (Visual Basic)|sito=Docs.Microsoft.com|lingua=en|data=20 luglio 2015|accesso=13 febbraio 2019}}</ref>, sebbene più propriamente le API sonosiano il metodo con cui le librerie vengono usate per sopperire ad uno specifico problema di scambio di informazioni<ref>{{Cita web|url=https://rapidapi.com/blog/api-vs-library/#:~:text=The%20main%20difference%20is%20that,SDK%20(Software%20Development%20Kit).|titolo=API vs Library (What’sWhat's the Difference?)}}</ref>.
 
== Caratteristiche ==
Riga 6 ⟶ 9:
 
Esistono due linee di condotta per quanto riguarda la pubblicazione delle API:
# Alcune compagnie conservano gelosamente le loro API. Per esempio, [[Microsoft]] fornisce API ufficiali solamente agli sviluppatori [[Xbox]] registrati., Questoallo perchéscopo intendedi restringere il numero di persone che possono scrivere [[gioco|giochi]] per la [[Console (sistema per videogiochi)|console]] pere limitare la pirateria.
# Altre compagnie distribuiscono le API pubblicamente. Per esempio, la stessa [[Microsoft]] fornisce al pubblico informazioni sulle sue [[Windows API]], tra cui le [[Microsoft Foundation Classes]] (MFC), per consentire di scrivere software per la piattaforma [[Microsoft Windows|Windows]].
 
Alcune API, come quelle standard di un [[sistema operativo]], sono implementate come una [[Libreria software|libreria]] separata e distribuite con il sistema operativo. Altre API richiedono a chi pubblica il software di integrare l'API direttamente nell'applicazione e spesso richiedono l'utilizzo di [[API key|chiavi API]] per l'autenticazione e il controllo degli accessi. Questo costituisce un'ulteriore distinzione nell'esempio precedente.
 
Le API di Microsoft Windows sono fornite con il sistema operativo e chiunque può utilizzarle. Il software per i [[sistema embedded|sistemi embedded]] come le console per videogiochi generalmente ricadono nella categoria in cui le API sono integrate con l'applicazione. Anche se la documentazione ufficiale dell'API della Playstation può essere una lettura interessante, è quasi inutile senza la corrispondente implementazione sotto forma di una libreria separata o di un kit per sviluppatori.
Riga 21 ⟶ 24:
 
== Posix ==
Poiché esistono molte varianti di API, nel 1985 è stato creato un progetto finalizzato alla creazione di uno standard. La famiglia che racchiude questi standard prende il nome di [[PosixPOSIX]] (acronimo di "Portable Operating System Interface for Unix"), il cui nome è stato ideato da [[Richard Stallman]] dopo la richiesta da parte dell'IEEE di un nome di facile memorizzazione.
 
== Esempio di utilizzo ==
Si può pensare ada un'applicazione che scriva le parole "[[Hello world]]" su uno schermo con vari livelli di astrazione:
 
# Scrivere tutto da soli:
## Disegnare su un foglio le forme delle lettere H, e, l, l, o, W, o, r, l, d.
Riga 39 ⟶ 41:
## Aprire il documento con un [[web browser]].
 
Ovviamente, lL'approccio del primo livello richiede molti passaggi ede ognuno di questi è molto più complesso di quelli dei livelli successivi. Altro svantaggio del primo approccio è che è poco pratico utilizzarlo nel caso in cui sia necessario visualizzare una certa quantità di informazioni sullo schermo; col secondo approccio l'operazione è molto più semplice, e nel terzo è sufficiente scrivere "Hello World". In genere utilizzare API di livello più alto comporta una certa perdita di flessibilità; per esempio, potrebbe essere molto difficile a livello di web browser ruotare attorno ada un punto un testo con i bordi lampeggianti, mentre questo compito potrebbe essere svolto in modo semplice ada un livello più basso. Questa differenza è un tipico esempio di compromesso che si può incontrare utilizzando un'API.
 
== Esempi diWeb API ==
Una '''web API''' è un'API sviluppata in uno dei linguaggi specifici per realizzare [[web app]] ovvero, in parole povere, applicazioni che l'utente usa attraverso un comune [[browser]]<ref>{{Cita web|url=https://www.unilab.eu/it/articoli/coffee-break-it/web-api/|titolo=API e WEB API cosa sono?|sito=UNILAB - Heat Transfer Software|data=2018-09-17|lingua=it-IT|accesso=2024-06-16}}</ref>. Rappresenta una categoria di procedure (erogate attraverso interfacce visuali consistenti in librerie di strumenti spesso open source) molto diffuse a causa del massiccio impiego di sistemi di tipo [[Software as a service|SaaS]]; possono però essere sviluppate affinché interagiscano con applicazioni tradizionali.
 
Esse sono delle interfacce per sviluppatori o per utenti che necessitano di servizi aggiuntivi o specifici rispetto al sistema base. Sono pure gli stessi produttori di software (oltre che al mondo open source) che mettono a disposizione set già compilati di web API, non solo per integrare funzioni ma anche per facilitare l'operatività dell'utente o del reparto IT aziendale in caso di sistemi informatici sempre più complessi (si pensi alle soluzioni di tipo business).
 
== Esempi di API e web API ==
* L'[[interfaccia (informatica)|interfaccia]] di chiamate al [[BIOS]] del PC
* I [[Document Object Model]] di varie applicazioni come l'[[HTML]]
Riga 54 ⟶ 61:
* ''Simple Network Management Protocol'' ([[Simple Network Management Protocol|SNMP]])
* ''Universal Plug and Play'' ([[UPnP]])
* ''Google APIs by Google Inc.''
* [[Mantle]], API di basso livello sviluppate da [[AMD]] come alternativa a [[DirectX]] e [[OpenGL]]
* ''[[Java Telephony API]]'', API di Java per la gestione di [[call center]] distribuiti.
* ''Amazon Product Advertising API''
* ''Bing API''
* ''Envato Marketplace API''
* ''Facebook API''
* ''Google Chart Tools and API''
* ''Google Feed API''
* ''All Google APIs and Tools'' (''Google APIs by Google Inc.'')
* ''LinkedIn API''
* ''StackExchange API''
* ''Twitter API''
* ''YouTube API''
* ''YUI Charts''
* ''Google Maps API Family''
* ''Google Libraries API''
* ''Google+ Platform API''
 
== Note ==
Riga 65 ⟶ 86:
* [[Linguaggio di programmazione]]
* [[Application binary interface]]
* [[Web API key]]
 
== Altri progetti ==
{{interprogetto|preposizione=sull'|wikt=API|wikt_etichetta=API}}
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* {{FOLDOC|Application Program Interface|Application Program Interface}}
* {{Garzanti|API}}
 
{{Componenti di Windows}}