Application programming interface: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Annullata la modifica di 93.65.240.87 (discussione), riportata alla versione precedente di 93.151.246.49
Etichetta: Rollback
 
(23 versioni intermedie di 16 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 inglese "ei-pi-ai", scandite essendo un acronimo.</ref>, in italiano "[[Interfaccia (informatica) |interfaccia]] di programmazione 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/|titolo=API vs Library (What'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.
 
== Web API ==
Una '''web API''' è un'API sviluppata in uno dei linguaggi specifici per relizzarerealizzare [[web app]] ovvero, in parole povere, applicazioni che l'utente usa attraverso un comune [[browser]]<ref>{{citaCita web|url=https://www.unilab.eu/it/articoli/coffee-break-it/web-api/|titolo=API e WEB API cosa sono?|accessosito=06UNILAB luglio- 2023Heat 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).
Riga 84 ⟶ 86:
* [[Linguaggio di programmazione]]
* [[Application binary interface]]
* [[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}}