Che cos'è un'API Web? (Interfaccia di programmazione applicazioni)

2

Che cos'è un'interfaccia di programmazione di applicazioni Web?

Molti siti comuni forniscono API. Perché sono necessari e quale funzione forniscono?

Come si accede a un'API Web?

    
posta Chris Cooper 22.04.2014 - 02:25
fonte

1 risposta

6

Immagina di voler scrivere un programma che contasse il numero di amici che hai su facebook i cui nomi iniziano con la lettera B.

Quando tu, come persona, interagisci con Facebook, vai su "facebook.com" nel tuo browser web e fai clic su link e immagini. Per eseguire questa attività di conteggio di amici, potresti andare alla pagina "amici", navigare nella sezione "B" e poi contare il numero di nomi che vedi.

Ma come fai a fare in modo che il tuo programma faccia la stessa cosa? Tecnicamente, ci sono modi per rendere il tuo codice di computer "cliccato" sulle cose, o "navigare" attraverso diverse pagine, ma questa è una grande quantità di lavoro per quello che sarebbe idealmente un problema piuttosto semplice.

Un'API è quasi come un sito web progettato specificamente per l'interazione con programmi, non con gli umani. Per vedere la tua lista di amici come un essere umano, su una bella pagina web, fai clic sul link che ti porta a www.facebook.com/Chris/friends . Facebook ti rimanda a quella pagina web. Ma se dovessi visitare (falso URL di esempio) www.facebook.com/API/Chris/friends , ottieni un risultato molto diverso. Invece di una pagina web con immagini, link, chat box e molti altri extra relativi alla visualizzazione e all'interazione, si ottiene un blocco di testo molto semplice, ma molto ben strutturato. Qualcosa del genere:

[
    {
        "name": "Adam Smith",
        "id": "176399948"
    },
    {
        "name": "Bill Gates",
        "id": "8462993451"
    }
]

Questo testo descrive l'elenco degli amici in un modo che è facilmente comprensibile e interiorizzato da un programma. È una notazione speciale per la memorizzazione dei dati (questa è chiamata JSON , ma ce ne sono molte altre), e la maggior parte dei linguaggi di programmazione ha funzioni per convertirli in variabili accessibili dal tuo programma.

Quindi nel tuo programma, per stampare il nome di un singolo amico, potresti dire:

api_result = get_webpage("www.facebook.com/API/Chris/friends")
friend_list = convert_json_to_data(api_result)

first_friend = friend_list[0]

print("One of my friends is named ", first_friend{'name'})

Come puoi vedere con friend_list[0] , il contenuto della pagina web è ora un vero array (o elenco o altro) di dati, accessibile e attraversabile attraverso il nostro ambiente di programmazione.

Quindi, in sintesi, e "Application Programming Interface" è ... un'interfaccia che consente di accedere a un'applicazione (come Facebook, Microsoft Word, ecc.) utilizzando un linguaggio di programmazione. Un nome più chiaro potrebbe essere "Programmazione dell'interfaccia di Langauge per un'applicazione". "API" si riferisce all'intero "sito" progettato per l'accesso ai programmi.

Alcune note in più (mi dispiace)

Le API spesso non ti permettono solo di vedere i dati, ma di alterarli. Di solito il processo è leggermente diverso, ma fondamentalmente si tratta di visitare un indirizzo diverso, come questo (per aggiungere un amico per Chris): www.facebook.com/API/Chris/add_friend?new_friend_id=34564573 , o in alternativa, lo stesso URL usando un metodo diverso (come un POST HTTP a www.facebook.com/API/Chris/friends invece di un GET )

Tecnicamente la descrizione che ti ho dato descrive solo le cosiddette "web API", che sono API disponibili su Internet attraverso diversi URL e che di solito corrispondono ai siti web. Ma l'idea generale si applica a qualsiasi API. È solo un modo ben strutturato e prevedibile per interagire con il programma per computer di qualcun altro utilizzando il proprio programma per computer. API è un termine veramente generale. In realtà, non è nemmeno limitativo riferirsi all'interazione con una "applicazione" autonoma, ma in realtà solo ... qualsiasi interfaccia di programmazione. Quindi la funzione "stampa" qui sopra fa parte di una "API" che consente di scrivere del testo su qualche schermo o file.

    
risposta data 22.04.2014 - 02:25
fonte

Leggi altre domande sui tag