Qu'est-ce que c'est qu'une API ?
Pourquoi utiliser des API dans votre code, c'est comme jouer avec LEGO.
Vous avez peut-être entendu le terme "API" dans la plupart des tutoriels de codage que vous avez lus. Si vous recherchez « API » sur Google, vous obtiendrez un gros paragraphe sur la signification de « Application Programming Interface » et une explication sur « REST » et « protocoles » et ainsi de suite, comme si cela rendait les choses plus claires.
Tout ce que vous devez savoir sur les API, c'est qu'il s'agit d'une liste de fonctions que vous pouvez utiliser pour automatiser des tâches et obtenir des données . Par exemple, vous pouvez :
- Utilisez l' API Gmail pour automatiser la lecture et le filtrage de votre boîte de réception avec du code
- Utilisez l' API Reddit pour créer un bot qui convertit automatiquement les unités métriques en unités impériales avec du code
- Utilisez l' API Fitbit pour récupérer les données de votre Fitbit et les envoyer à une application personnalisée sur votre téléphone
Dans le même ordre d'idées, les API fournissent de petits morceaux de code qui vous permettent de créer des programmes. Ils ont des fonctions comme :
getLikeCount()createGoogleSheet()sendEmail()
Comment savons-nous ce que sont ces "morceaux de code" ?
Chaque API est livrée avec une documentation qui répertorie toutes les façons dont vous pouvez l'utiliser, un peu comme un catalogue LEGO. Il vous montre toutes les choses que vous pouvez faire avec une API, qui pour l' API Reddit peut être "publier un commentaire" ou "enregistrer une publication". La documentation se trouve souvent en ligne sur le site Web d'une entreprise, généralement sur une page de développeur cachée. Les « choses que vous pouvez faire » sont appelées « méthodes API ».
Certaines documentations sont meilleures que d'autres , mais la documentation est finalement une liste de morceaux de code et de fonctions prédéfinis que vous pouvez utiliser dans votre propre code .
L'API la plus simple : obtenir votre adresse IP
Regardons une API qui n'a qu'un seul élément : l'API IPify , qui vous indique quelle est votre adresse IP.
Une adresse IP est comme un numéro de téléphone ou une adresse postale pour votre ordinateur. Il indique à Internet où vous trouver. Les sites Web ont également leurs propres adresses IP.
Nous allons envoyer une commande à IPify.org et lui demander quelle est notre adresse IP. Cela fonctionne à la fois sur Mac OS et Windows.
Ouvrez Terminal (Mac) ou Invite de commandes (Windows) et saisissez ce qui suit :
curl 'https://api.ipify.org?format=json'
What the command looks like in Terminal on a MacBook.
{"ip": "68.142.10.250"}
Pour vérifier qu'il s'agit de votre adresse IP réelle, visitez WhatIsMyIPAddress.com .
JSON est l'un des formats de données les plus populaires pour les API Web modernes. Il met tout au {“key”: value}format afin que toutes les données aient une étiquette. D'autres API peuvent utiliser XML , qui a un format similaire <Key>value</Key>, et de nombreuses API vous permettent de choisir entre les deux.
C'est l'essentiel de beaucoup d'API Web. Nous demandons à un site Web certaines données et il répond avec ces données. Les API courantes dans la recherche scientifique, comme les API de la NASA , de l' USGS et de l' USFDA , fonctionnent de cette façon. Nous pouvons obtenir des données sur les satellites spatiaux, l'élévation des montagnes aux États-Unis et la liste des médicaments approuvés par la FDA si nous le demandons.
Qu'en est-il de l'automatisation de l'activité des utilisateurs ?
Et si nous ne voulions pas simplement récupérer les données d'un site Web ? Que diriez-vous de créer des bots ou d'automatiser notre journée de travail ?
C'est là qu'interviennent des API plus compliquées. Elles impliquent toujours des commandes singulières où nous parlons à un site Web ou à une application et disons : "Je veux obtenir ces données (ou envoyer ces données)." Et l'application réagit en conséquence. Mais maintenant, nous rassemblons plusieurs commandes pour accomplir des activités plus sophistiquées.
Un exemple en plusieurs étapes : l'API Reddit
Reddit est le plus grand forum en ligne au monde. Reddit publie son API en ligne et répertorie tout ce que vous pouvez faire avec son API dans la barre latérale à gauche.
Dans la barre latérale se trouvent les méthodes que nous pouvons utiliser pour obtenir notre liste d'amis, notre karma, nos trophées, etc. Chaque action qu'un utilisateur peut effectuer sur le site Web a sa propre méthode API correspondante.
Si nous visitons la page de l'API Reddit et que nous faisons défiler vers le bas, il y a une section, liens et commentaires , qui montre toutes les interactions utilisateur normales et leurs méthodes API correspondantes. Nous pourrions les utiliser pour créer un compte bot ou quelque chose de similaire.
Nous avons des interactions quotidiennes avec les utilisateurs comme commenter ( /api/comment), suivre et enregistrer des publications . L'API Reddit permet de le faire avec du code. Le /api/préfixe sur toutes les méthodes semble bizarre, mais nous expliquerons cela dans une minute.
L'API Google Search , en revanche, n'a qu'une seule méthode et qui consiste à rechercher :
L'API de recherche Google est simple, car Google sait qu'il n'y a qu'une seule chose que les programmeurs se soucient de faire avec Google Search : la recherche.
C'est l'objectif de chaque API, de résumer toutes les activités et options du site Web ou de l'application normale dans ce type de fonctions prêtes pour le code "one liner" que nous pouvons utiliser à partir de Python, JavaScript, Bash, Java, R, etc. .
- Une API de site Web veut que vous puissiez effectuer des interactions utilisateur normales (connexion, commentaires, recherche, suppression d'éléments) avec le moins de code possible
- Une API portable veut que vous puissiez saisir des données, envoyer une alerte au porteur ou modifier les paramètres du portable avec le moins de code possible
À quoi ressemble l'utilisation d'une API dans le code
Alors, à quoi cela ressemble-t-il dans le code ? L'API Reddit indique que la méthode de commentaire s'appelle /api/comment. Qu'est-ce que cela signifie? Nous ne pouvons pas simplement mettre /api/commentun fichier Python et l'appeler un jour, n'est-ce pas ? Droite.
Il existe quelques différences entre l'utilisation d'une API pour parler à un site Web et l'utilisation de l'API d'un appareil portable. Ils ressemblent tous les deux à LEGO en ce sens qu'ils vous permettent de faire des choses complexes avec quelques lignes de code, mais le code lui-même est assez différent. Par conséquent, nous leur fournirons des exemples distincts.
Plus en profondeur : les API Web dans le code
Nous avons vu que les méthodes de l'API Reddit sont répertoriées avec un tas de barres obliques :
Cela ne ressemble pas du tout à Python, JavaScript ou code. Ça dit /api/? Qu'est-ce que c'est?
Ce sont en fait des parties de liens HTTP , tout comme ceux que vous saisissez dans Chrome ou Firefox.
Pourquoi des liens Web? Est-ce qu'on les met directement dans notre code ? Oui, et pour cause.
Lorsque nous utilisons une API Web, comme celle de Reddit, Gmail ou même les API du NIH ou de la NASA , notre code parle essentiellement à un site Web. Les sites Web utilisent links/that/look/like/thispour séparer leurs pages et leurs fonctions. Google vit à google.com, mais ses résultats de recherche vivent à google.com/search.
Nous finirons par mettre ce point de terminaison dans notre code quelque part comme ceci :
google_search_api = "https://www.googleapis.com/customsearch/"
Maintenant, le code ne parle pas vraiment à un site Web mais à un serveur (comme un site Web sans tête), mais ils organisent les choses de la même manière avec /slashes/, en ce qui concerne les API. Tout comme lorsque vous publiez un blog en tant qu'utilisateur régulier sur un site Web à partir de la page website.com/post, votre code peut communiquer avec le point de terminaison de publication de blog du serveur d'API sur api.website.com/postou website.com/api/postou similaire.
Pensez-y comme ceci : lorsque vous consultez votre boîte de réception Gmail sur votre ordinateur portable ou votre téléphone, votre navigateur :
- Contactez-nous sur Internet pour
gmail.com - Dites à
gmail.com"Puis-je obtenir la page Web sous/mail/inbox?" - Ensuite, Gmail renvoie la page Web de votre boîte de réception à votre navigateur, afin que vous puissiez la voir.
- Atteindre
gmail.googleapis.com - Demandez
gmail.googleapis.comvotre boîte mail - Ensuite, l'API Gmail renverra uniquement les données au lieu de l'ensemble du site Web
Les données pures sont compatibles avec le code, et c'est à cela que servent les API.
Exemple : Obtenir des médicaments à partir de l'API openFDA
Voici un court exemple Python pour interroger l' API openFDA de l'USFDA , qui répertorie tous les médicaments approuvés par la FDA :
# import an HTTP library
import requests
# Tell "requests" to request data from the openFDA "Drugs" endpoint
drugs_http_endpoint = "https://api.fda.gov/drug/label.json?limit=100"
drugs = requests.get(drugs_http_endpoint)
# Print all the data that we got from USFDA about drugs
print(drugs.json())
Remarque : l'exemple ci-dessus utilise la requests bibliothèque HTTP populaire pour Python.
Qu'en est-il des API pour le Bluetooth et les appareils portables ?
L'utilisation de l'API d'un appareil portable (comme Fitbit ou Apple Watch) est un peu différente de l'utilisation de l'API d'un site Web, mais elles sont documentées de la même manière. Par exemple, au lieu d'une méthode "commentaire" , une API portable peut avoir les méthodes suivantes :
- obtenir la fréquence cardiaque
- obtenir des données de mouvement (à partir de l'accéléromètre et du gyroscope)
- envoyer une alerte à l'utilisateur
Exemple portable : l'API Fitbit
Au lieu d'interroger un site Web pour obtenir des données, vous souhaiterez peut-être coder pour un appareil spécifique, comme le Fitbit .
L' API Fitbit comporte plusieurs éléments . Il a même sa propre API Web.
Examinons l'une des parties de l' API Device .
Sur la page API de l'appareil , la barre latérale gauche affiche une liste de tous les éléments de l'API avec lesquels nous pouvons interagir.
Chacune de ces grandes catégories est une sorte de collection de pièces LEGO , dont nous pouvons en savoir plus sur les pièces puis les utiliser dans notre propre code. Les pièces LEGO sont des choses comme :
- lire ou régler l'horloge
- lecture de l'accéléromètre (partie du suivi de mouvement)
- lire le moniteur de fréquence cardiaque , etc.
Il y a beaucoup d'informations, mais la page contient un court exemple de script, puis répertorie un tas de pièces LEGO liées à la fréquence cardiaque que nous pouvons utiliser dans notre propre code :
activated(nous indique si le capteur de fréquence cardiaque est activé ou non)heartRate(nous indique la fréquence cardiaque actuelle)onactivate(une fonction que nous pouvons utiliser pour dire au Fitbit quoi faire dès que le capteur de fréquence cardiaque est activé)
En pseudocode, ce qui précède signifie :
import HeartRateSensor code from Fitbit's API
if HeartRateSensor was imported {
hrm = the HeartRateSensor
Listen for heart rate sensor to send data, then print it.
Start the heart rate sensor (which will then start the above "Listen" code)
}
Si vous êtes bloqué lors de l'utilisation d'une API, l'entreprise qui l'a créée disposera généralement d'une documentation en ligne que vous pourrez rechercher sur Google. (Exemple : la recherche de "Fitbit API" affichera l'API Fitbit réelle en tant que premier résultat de recherche.) À défaut, vous pouvez contacter directement l'entreprise pour lui demander si elle dispose d'une documentation API à envoyer.
Dans certains cas, la documentation de l'API peut être vraiment décevante , entraînant de la frustration dans la communauté des développeurs. Mais c'est une opportunité de contribuer et de combler les lacunes ou de créer votre propre meilleur produit.
Résumé
Les ingénieurs écrivent des API dans l'espoir que vous développerez et utiliserez leurs applications, ensembles de données et appareils portables. Maintenant que vous comprenez les API, consultez ces API populaires pour commencer . Le plus souvent, votre technologie et vos applications préférées ont toutes des API que vous pouvez utiliser dans votre prochain projet.
Si vous avez des questions ou des commentaires, écrivez-nous à [email protected] ou envoyez-nous un message sur Instagram (@protobioengineering) . Merci d'avoir lu.
Liens connexes
- GitHub pour les biologistes
- API Dataverse : données et logiciels de recherche open source
- Postman : créer et tester des API
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































