QNA > U > Un'api È Solo Una Funzione?

Un'API è solo una funzione?

No.

In teoria, potrebbe esserlo. In pratica, una tale API sarebbe utile quanto un telefono su cui si possono solo effettuare chiamate. No, non si può inserire un numero su quel telefono. No, non si può scegliere un contatto da chiamare su quel telefono. Non ha una lista di contatti, non ha pulsanti numerici, ha solo un singolo pulsante per avviare la chiamata. In casi molto, molto speciali, potrebbe esistere ed essere utile (qualcosa come un telefono di emergenza negli ascensori, che chiama il numero di riparazione e soccorso dell'ascensore che è pre-programmato in esso), ma quelli sono casi molto rari e molto speciali.

Nel 99.9% dei casi, l'API è un'interfaccia, cioè un insieme di funzioni, così come un insieme di oggetti (o almeno di regole) che descrivono il formato dei dati che dovete passare a quelle funzioni, e il formato dei dati che quelle funzioni vi restituiscono.

Oltre a questo, l'API è di solito anche un insieme di regole/logica su come e quando usare quelle funzioni. Torniamo all'esempio del telefono: per chiamare qualcuno, dovete digitare il numero manualmente (phone.TypeNumber("00XXX123123")), o ottenere la lista dei contatti in modo da poterla sfogliare (contacts = phone.GetContacts()) e cercare il contatto che volete chiamare o cercare per nome nella lista dei contatti (contact = phone.FindInContacts("partOfName")), poi selezionarlo (phone.TypeNumber(contacts[3].number) o phone.TypeNumber(contact.number)), e solo allora puoi effettivamente phone.StartCall(). e dopo aver finito di parlare, devi riagganciare (phone.EndCall()).

Così vedete, non solo c'è un insieme di funzioni per fare varie cose, ma anche sequenze logiche e significative di azioni implicite (o del tutto imposte), per il corretto funzionamento del dispositivo, per il corretto funzionamento dell'API.

Therefore, API is:

  1. a set of functions doing various things, taking various parameters and returning various pieces of data
  2. a set of objects describing/enforcing the proper format of those parameters and pieces of returned data
  3. various sequences in which you can/need to call those various functions, in a way that makes logical sense.

Di Cammi Fedorek

Qual è la dimensione massima di un video per caricarlo su Facebook? :: Quali sono alcuni esempi di calcolo distribuito?
Link utili