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 |
|||
(101 versioni intermedie di 69 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]]
== Caratteristiche
Esistono vari
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
# 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
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 di [[API key|chiavi API]] per l'autenticazione e il controllo degli accessi. Questo costituisce un'ulteriore distinzione nell'esempio precedente.
▲# Alcune compagnie conservano gelosamente le loro API. Per esempio, [[Microsoft]] fornisce API ufficiali solamente agli sviluppatori [[Xbox]] registrati. Questo perché intende restringere il numero di persone che possono scrivere [[gioco|giochi]] per la [[Console (sistema per videogiochi)|console]] per 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 scrivere ''software'' per la piattaforma [[Windows]].
▲Altre richiedono a chi pubblica il software di integrare l'API direttamente nell'applicazione. 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.
Una API che non richiede il pagamento di diritti per il suo accesso ed utilizzo è detta "aperta". Le API fornite dal [[software libero]], come
In generale l'analisi dell'implementazione di una API per produrne una compatibile costituisce una violazione alla legge. Questa tecnica è chiamata
== Finalità ==
La finalità è ottenere un'[[astrazione (informatica)|astrazione]] a più alto livello, di solito tra l'[[hardware]] e il programmatore o tra [[software]] a basso e quello ad alto livello semplificando così il lavoro di [[programmazione (informatica)|programmazione]]. Le API permettono infatti di evitare ai [[programmatore|programmatori]] di riscrivere ogni volta tutte le [[funzione (informatica)|funzioni]] necessarie al programma dal nulla, ovvero dal basso livello, rientrando quindi nel più vasto concetto di [[riuso di codice]]. Le API stesse rappresentano quindi un livello di astrazione intermedio: il
== 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 [[
== Esempio di utilizzo ==
Si può pensare
# 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]].
==
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 48 ⟶ 55:
* L'API Java 2 Enterprise Edition [[Java EE]]
* L'interfaccia [[ASPI]] per i dispositivi [[Small Computer System Interface|SCSI]]
* Le API [[Carbon (API)|Carbon]] e [[Cocoa (
* API e Web service
* ''Common Object Request Broker Architecture'' ([[Common Object Request Broker Architecture|CORBA]])
* ''Java APIs for Integrated Networks'' ([[JAIN]])
* ''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 ==
<references/>
Riga 63 ⟶ 85:
* [[Libreria (software)]]
* [[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}}
{{Controllo di autorità}}
{{
[[Categoria:Librerie software]]
|