Benvenuto su Inforge
Rimuovi la pubblicità e partecipa alla più grande comunità italiana sul mondo digitale presente sul web sin dal 2007.
Iscriviti

Risolto Cosa sono le API?

zouth

Utente Iron
16 Dicembre 2020
27
0
15
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)?
 
Supporta Inforge con una donazione

DispatchCode

Moderatore
24 Maggio 2016
350
234
188
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).
 

DispatchCode

Moderatore
24 Maggio 2016
350
234
188
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
 

Kode

Utente Emerald
10 Dicembre 2013
1,336
330
393
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.
 

Webber

Utente Gold
18 Giugno 2012
631
304
263
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.
 

Kode

Utente Emerald
10 Dicembre 2013
1,336
330
393
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
Reactions: zouth

zouth

Utente Iron
16 Dicembre 2020
27
0
15
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?
 
Supporta Inforge con una donazione

Kode

Utente Emerald
10 Dicembre 2013
1,336
330
393
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)