Domanda Risolto Cosa sono le API?

zouth

Utente Silver
16 Dicembre 2020
82
36
4
61
Ciao a tutti, sento sempre parlare di queste API ma le ho capito molto molto vagamente, qualcuno potrebbe spiegarmele in maniera semplice con un po di esempi (se qualcuno potesse farmi qualche esempio in c# gliene sarei molto grato :D)?
 
Ciao, API sta per "Application Programming Interface". Le API vengono esposte per fornire un qualche tipo di servizio. Sentirai parlare di API sia in contesti Web che non.
Un esempio sono le API di Spotify o di Facebook: https://developer.spotify.com/documentation/web-api/
Nel caso di questi servizi le API ti permettono di avere info sugli utenti, creare playlist, leggerle (nel senso di ottenere le playlist create) etc etc.

Quasi ogni applicazione espone delle API ormai, e quelli che ti ho citato sono solo due esempi, ma potrei citarti anche https://docs.github.com/en/rest/overview

Un altro esempio di API in un contesto non web, può essere l'API di Windows https://docs.microsoft.com/en-us/windows/win32/apiindex/windows-api-list
Qui trovi funzioni che ti consentono di creare finestre, ricevere eventi o disegnare, oppure per la lettura/scrittura di files o la loro creazione, così come una serie di altre funzioni.

In entrambi i casi lo scopo di un'API è sempre il medesimo: mettere a disposizione un servizio, in maniera trasparente (non ti serve sapere come funziona internamente per usarla).
 
Quella è una libreria. In effetti è "sottile" come differenza: la libreria espone delle API, con le quali tu interagisci.
La libreria è un insieme di funzioni che vai a utilizzare nei tuoi progetti. Tu interagisci con alcune funzioni che la libreria ti mette a disposizione.

EDIT:

Qui trovi altre info relative anche ad IDE ed SDK, magari chiarisce meglio https://stackoverflow.com/questions...k-vs-library-vs-ide-vs-api-vs-sdk-vs-toolkits
 
Per farti capire meglio, oltre alla spiegazione completa e dettagliata di DispatchCode, posso dirti che le API sono una serie di procedure mantenute dentro pacchetti o librerie (a secondo del termine usato nel linguaggio) in grado di compiere ad un determinato compito.

Le API sono un sottoinsieme delle librerie, questo perchè ci possono essere librerie general-pourpose (esempio banale <iostream.io> in C++) usate per differenti scopi.
 
Sono delle librerie, che espongono delle API.

La libreria vedila come una stanza, le API come la porta per entrarci.
La stessa stanza può avere diverse porte, di dimensioni e forma diverse.

Per assurdo una libreria senza API, è una libreria che puoi importare ma con la quale non puoi interagire.

Nel contesto web, la libreria diventa l'endpoint http.
 
Quindi tipo OpenGL o DirectX sono librerie o API? Continuo a non capire :(

Quando devo usare delle API, io non è che scarico le API ma scarico le librerie in cui hanno dentro le API. Cioè OpenGL per esempio è una suite di API, le funzioni, procedure, oggetti e tutto ciò che ci sta dentro sono le API di OpenGL, ma la libreria è OpenGL.

Non so se ora ti è chiaro il concetto ;)
 
  • Mi piace
Reazioni: zouth
Grazie mille Kode! Se quello che ho capito e' giusto allora ho il concetto molto piu chiaro.
Quindi tutte le classi, le funzioni e cose varie contenute in una libreria sono API?
 
Grazie mille Kode! Se quello che ho capito e' giusto allora ho il concetto molto piu chiaro.
Quindi tutte le classi, le funzioni e cose varie contenute in una libreria sono API?

A larghe linee si, sono delle procedure che hanno scopi ben definiti (ti faccio un esempio: nelle librerie SQLite di Python, la classe Model è parte di una famiglia di API)