Movatterモバイル変換


[0]ホーム

URL:


Vai al contenuto
WikipediaL'enciclopedia libera
Ricerca

Application programming interface

Da Wikipedia, l'enciclopedia libera.
Voce da controllare
Questa voce o sezione sull'argomento informatica è ritenutada controllare.
Motivo:Rivedere la relazione tra api e librerie

Partecipa alladiscussione e/ocorreggi la voce.Segui i suggerimenti delprogetto di riferimento.
Niente fonti!
Questa voce o sezione sull'argomento informaticanon cita le fonti necessarie o quelle presenti sono insufficienti.

Puoimigliorare questa voce aggiungendo citazioni dafonti attendibili secondo lelinee guida sull'uso delle fonti. Segui i suggerimenti delprogetto di riferimento.
Application programming interface
Application programming interface

In unprogramma informatico, conapplication programming interface (API)[1], in italiano "interfaccia di programmazione dell'applicazione", si indica un insieme diprocedure (in genere raggruppate per strumenti specifici) atte a consentire la comunicazione tra diversi computer o tra diversi software o tra diversi componenti di software[2]; spesso tale termine designa lelibrerie software di unlinguaggio di programmazione[3], sebbene più propriamente le API siano il metodo con cui le librerie vengono usate per sopperire ad uno specifico problema di scambio di informazioni[4].

Caratteristiche

[modifica |modifica wikitesto]

Esistono vari design model per le API. Le interfacce intese per la massima velocità di esecuzione spesso consistono in una serie difunzioni,procedure,variabili estrutture dati. Esistono anche altri modelli come gliinterpreti usati per valutare le espressioni come conECMAScript/JavaScript. Una buona API fornisce una "scatola nera", cioè un livello di astrazione che permette al programmatore di evitare di conoscere il funzionamento delle API ad un livello più basso. Questo permette di riprogettare o migliorare le funzioni all'interno dell'API senza cambiare il codice che si affida ad essa.

Esistono due linee di condotta per quanto riguarda la pubblicazione delle API:

  1. Alcune compagnie conservano gelosamente le loro API. Per esempio,Microsoft fornisce API ufficiali solamente agli sviluppatoriXbox registrati, allo scopo di restringere il numero di persone che possono scriveregiochi per laconsole e limitare la pirateria.
  2. Altre compagnie distribuiscono le API pubblicamente. Per esempio, la stessaMicrosoft fornisce al pubblico informazioni sulle sueWindows API, tra cui leMicrosoft Foundation Classes (MFC), per consentire di scrivere software per la piattaformaWindows.

Alcune API, come quelle standard di un sistema operativo, sono implementate come una 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 dichiavi 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 isistemi 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.

Una API che non richiede il pagamento di diritti per il suo accesso ed utilizzo è detta "aperta". Le API fornite dalsoftware libero, come software distribuito sotto licenzaGPL, sono aperte per definizione, dal momento che si può accedere alsorgente del software e capire come funziona. Anche se esiste una "implementazione di riferimento" per una API (come quella diMicrosoft Windows per laWindows API), non c'è nulla che impedisce la creazione di un'implementazione alternativa. Per esempio, la maggior parte della API di Windows può essere fornita in un sistemaUnix da un software chiamatoWine.

In generale l'analisi dell'implementazione di una API per produrne una compatibile costituisce una violazione alla legge. Questa tecnica è chiamataingegneria inversa. La situazione legale in questi casi presenta ambiguità quindi conviene affrontare il problema prima che l'attività di ingegneria inversa sia iniziata. Per esempio, una API può contenere a sua volta unbrevetto.

Finalità

[modifica |modifica wikitesto]

La finalità è ottenere un'astrazione a più alto livello, di solito tra l'hardware e il programmatore o trasoftware a basso e quello ad alto livello semplificando così il lavoro diprogrammazione. Le API permettono infatti di evitare aiprogrammatori di riscrivere ogni volta tutte lefunzioni necessarie al programma dal nulla, ovvero dal basso livello, rientrando quindi nel più vasto concetto diriuso di codice. Le API stesse rappresentano quindi un livello di astrazione intermedio: il software che fornisce una certa API è detto implementazione dell'API.

Posix

[modifica |modifica wikitesto]

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 diPOSIX (acronimo di "Portable Operating System Interface for Unix"), il cui nome è stato ideato daRichard Stallman dopo la richiesta da parte dell'IEEE di un nome di facile memorizzazione.

Esempio di utilizzo

[modifica |modifica wikitesto]

Si può pensare a un'applicazione che scriva le parole "Hello world" su uno schermo con vari livelli di astrazione:

  1. Scrivere tutto da soli:
    1. Disegnare su un foglio le forme delle lettere H, e, l, l, o, W, o, r, l, d.
    2. Preparare una matrice di quadrati bianchi e neri avente la forma di ognuna delle lettere
    3. Ideare un modo per programmare laCPU in modo che ponga questa matrice nelframe buffer dellascheda video.
    4. Predisporre la scheda video per generare il segnale corretto a partire dal contenutoframe buffer.
  2. Utilizzare unsistema operativo per effettuare parte del compito:
    1. Caricare in memoria una struttura dati chiamata "font" fornita dal sistema operativo.
    2. Far visualizzare al sistema operativo una finestra vuota.
    3. Far disegnare al sistema operativo il testo "Hello World" sulla finestra utilizzando il font caricato.
  3. Utilizzare un'applicazione (che a sua volta utilizza il sistema operativo) per tutto il lavoro:
    1. Scrivere un documentoHTML contenente le parole "Hello World".
    2. Aprire il documento con unweb browser.

L'approccio del primo livello richiede molti passaggi e 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 a un punto un testo con i bordi lampeggianti, mentre questo compito potrebbe essere svolto in modo semplice a un livello più basso. Questa differenza è un tipico esempio di compromesso che si può incontrare utilizzando un'API.

Web API

[modifica |modifica wikitesto]

Unaweb API è un'API sviluppata in uno dei linguaggi specifici per realizzareweb app ovvero, in parole povere, applicazioni che l'utente usa attraverso un comunebrowser[5]. 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 tipoSaaS; 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

[modifica |modifica wikitesto]

Note

[modifica |modifica wikitesto]
  1. ^In inglese "ei-pi-ai", scandite essendo un acronimo.
  2. ^ Martin Reddy,API design for C++, Morgan Kaufmann, 2011,ISBN 978-0-12-385004-1,OCLC 704559821.URL consultato il 16 maggio 2022.
  3. ^(EN)Walkthrough: Calling Windows API (Visual Basic), suDocs.Microsoft.com, 20 luglio 2015.URL consultato il 13 febbraio 2019.
  4. ^API vs Library (What's the Difference?), surapidapi.com.
  5. ^API e WEB API cosa sono?, suUNILAB - Heat Transfer Software, 17 settembre 2018.URL consultato il 16 giugno 2024.

Voci correlate

[modifica |modifica wikitesto]

Altri progetti

[modifica |modifica wikitesto]

Altri progetti

Collegamenti esterni

[modifica |modifica wikitesto]
V · D · M
Componenti diWindows
Strumenti di sistemaApp Installer ·Configurazione di sistema ·Console di ripristino ·Controllo file di sistema ·Deframmenta disco ·Driver Verifier ·DxDiag ·Gestione attività ·Gestione dispositivi ·IExpress ·Impostazioni ·Management Console ·Monitoraggio risorse ·Monitor di sistema ·Netsh ·Pannello di controllo (Componenti) ·PowerShell ·Pulizia disco ·Prompt dei comandi ·Ripristino configurazione di sistema ·Sysprep ·System Information ·System Policy Editor ·Visualizzatore eventi ·Windows Error Reporting ·Windows Ink ·Windows Installer ·Windows Update (Windows Insider) ·WinRE ·WMI ·Windows System Assessment Tool
ApplicazioniAssistente vocale ·Assistenza rapida ·Blocco note ·Calcolatrice ·Calendario ·Centro PC portatile Windows ·Contatti ·Cortana ·Edge ·Fax e scanner ·Feedback Hub ·File Manager ·Film e TV ·Foto ·Fotocamera ·Groove Musica ·Il tuo telefono ·Lente di ingrandimento ·Mappa caratteri ·Memo ·Messaggi ·Meteo ·Money ·News ·OneDrive ·OneNote ·Paint ·Pay ·Phone Companion ·Posta ·Registratore vocale ·Richiesta supporto ·Riconoscimento vocale ·Skype ·Sport ·Store ·Strumento di cattura ·Suggerimenti ·Sveglie e orologio ·Visualizzatore 3D ·Windows Media Player ·Windows Story Remix ·Windows To Go ·Xbox Console Companion
ShellAero ·AutoPlay ·AutoRun ·Barra delle applicazioni ·Centro notifiche (Windows) ·ClearType ·Esplora file ·Menu start ·Search (Cartella speciale ·IFilter ·Namespace ·Ricerca salvata ·Servizio di indicizzazione) ·Stili di visualizzazione di Windows XP ·Visualizzazione attività ·Windows Spotlight
KernelSystem Idle Process ·Registro di sistema ·DLL ·EXE ·NTLDR ·Winlogon ·Recovery Console ·I/O ·WinRE ·WinPE ·Kernel Patch Protection
ServiziBITS ·CLFS ·Copia shadow ·Error Reporting ·Multimedia Class Scheduler ·Service Control Manager ·Utilità di pianificazione ·Wireless Zero Configuration
File systemCDFS ·DFS ·exFAT ·FAT ·IFS ·NTFS(Collegamento fisico ·EFS ·Junction point ·Mount Point ·Reparse point ·Symbolic link ·TxF) ·ReFS ·UDF
ServerActive Directory ·DFS Replication ·Distributed Transaction Coordinator ·DNS ·Domini ·Group Policy ·Hyper-V ·IIS ·MSMQ ·Profilo utente in roaming ·Protezione di accesso alla rete ·PWS ·Reindirizzamento delle cartelle ·Remote Desktop Services ·Remote Differential Compression ·Remote Installation Services ·Rights Management Services ·Server Core ·Servizi di stampa per UNIX ·SharePoint ·System Resource Manager ·Windows Deployment Services ·Windows Media Services ·WSUS
ArchitetturaArchitettura Windows NT ·Console Windows ·Copia shadow ·CSRSS ·Desktop Window Manager ·Enhanced Write Filter ·Graphics Device Interface ·hal.dll ·I/O request packet ·Imaging Format ·Kernel Transaction Manager ·Librerie ·Logical Disk Manager ·LSASS ·MinWin ·NTLDR ·Ntoskrnl.exe ·Object Manager ·Portable Executable (EXE ·DLL) ·Processo di avvio (NT ·Vista) ·Registro di sistema ·Resource Protection ·Security Account Manager ·Server Message Block ·SMSS ·System Idle Process ·USER ·WHEA ·Winlogon ·WinUSB ·XML Paper Specification
SicurezzaAppLocker ·BitLocker ·Credential Guard ·Family Safety ·Kernel Patch Protection ·Mandatory Integrity Control ·Prevenzione di esecuzione dei dati ·Protected Media Path ·Sicurezza e manutenzione ·User Account Control ·User Interface Privilege Isolation ·Windows Defender ·Windows Firewall
CompatibilitàCOMMAND.COM ·Macchina virtuale DOS ·Windows Subsystem for Linux (Microsoft POSIX) ·Windows on Windows ·WoW64 ·Windows XP Mode
APIActive Scripting (WSH ·VBScript ·JScript) ·COM (ActiveX ·ActiveX Document ·COM Structured storage ·DCOM ·OLE ·OLE Automation ·Transaction Server) ·DirectX ·.NET Framework ·Universal Windows Platform ·Windows Mixed Reality ·Windows Runtime ·WinUSB
GiochiSolitaire Collection
Obsoleti
Giochi3D Pinball ·Chess Titans ·FreeCell ·Hearts ·InkBall ·Hold 'Em ·Othello ·Purble Place ·Spider Solitaire ·Solitario ·Tinker
ApplicazioniActiveMovie ·Anytime Upgrade ·Backup e ripristino ·Cardfile ·CardSpace ·CD Player ·Contatti ·Desktop Gadgets ·Diagnostics ·DriveSpace ·DVD Maker ·Easy Transfer ·Fax ·Food & Drink ·Help and Support Center ·Health & Fitness ·HyperTerminal ·Journal ·Media Center ·Meeting Space ·Messaging ·Messenger ·Mobile Device Center ·Movie Maker ·MSN Dial-up ·NetMeeting ·NTBackup ·Outlook Express ·Rubrica ·Travel ·Photo Gallery ·Photo Viewer ·Program Manager ·Steps Recorder ·Syskey ·WinHelp ·Write
AltriScanDisk ·File Protection ·Media Control Interface ·Next-Generation Secure Computing Base ·POSIX subsystem ·Interix ·Video for Windows ·Windows SideShow ·Windows Services for UNIX ·WinFS
Trasferiti su
Microsoft Store
Lettore DVD ·Hover! ·Mahjong ·Minesweeper
DeprecatiInternet Explorer ·Media Player
RimossiMicrosoft WordPad ·Paint 3D ·Mappe
Controllo di autoritàLCCN(ENsh98004527 ·GND(DE4430243-5 ·BNF(FRcb13337425v(data) ·J9U(EN, HE987007534972505171
Estratto da "https://it.wikipedia.org/w/index.php?title=Application_programming_interface&oldid=147061963"
Categoria:
Categorie nascoste:

[8]ページ先頭

©2009-2025 Movatter.jp