Exemples d'API web publiques

2024-10-19

Il est possible d'accéder à l'API publique Pénuries de médicaments à l'aide de divers outils numériques. Le code suivant fournit des exemples pour certains d'entre eux.

Requêtes Python

La "Requests Library" est une option populaire pour accéder aux services web en langage Python. 

Installation

Installez la bibliothèque en exécutant la commande suivante dans une fenêtre de terminal.

python -m pip install requests

Au début du fichier Python, assurez-vous d'importer la bibliothèque.

import requests

Connexion

Avant de pouvoir effectuer des appels à l'API, il est nécessaire de récupérer un jeton d'accès lié à votre compte. Le bloc de code suivant montre comment effectuer une demande de connexion et enregistrer le jeton d'accès résultant si la demande aboutit.

data = {'email' : '<my email>', 'password' : '<my password>'}
url = 'https://www.drugshortagescanada.ca/api/v1/login'
r = requests.post(url, json=data)
if r.status_code == 200 :
    authToken = r.headers['auth-token']


Veillez remplacer les données <my email> et <my password> par vos valeurs réelles. Notez que l'API soutient à la fois le contenu JSON avec json=data et l'encodage conventionnel des URL avec data=data. Un script approprié devrait gérer un code de statut invalide et conserver le jeton d'authentification "authToken" pour les demandes ultérieures.

Recherche de rapports

Avec la valeur authToken disponible, il est maintenant possible de rechercher les rapports d'intérêt dans la base de données. Le bloc de code suivant montre comment effectuer cette requête.

parameters = {'term' : '<nom de l'entreprise>', 'limit' : 50, 'offset' : 0}
headers = {'auth-token' : authToken}
url = 'https://www.drugshortagescanada.ca/api/v1/search'
r = requests.get(url, headers=headers, params=parameters)
si r.status_code == 200 :
    responseJson = r.json()
    reports = responseJson['data']

Veillez remplacer la valeur <nom de l'entreprise> par le terme de recherche d'intérêt. Si l'objectif est de récupérer l'ensemble de la base de données de rapports pour une analyse personnalisée, il est recommandé d'utiliser plutôt l'extrait de données mensuelles. L'API est optimisée pour examiner un sous-ensemble plus restreint de déclarations, par exemple pour des entreprises individuelles ou des DIN spécifiques.

Notez l'inclusion des variables limit et offset dans les données de paramètres. En ajustant la valeur offset, il est possible de parcourir les résultats dans les requêtes suivantes. Voici un exemple de demande de données à la "page 3".

parameters = {'term' : '<nom de l'entreprise>', 'limit' : 50, 'offset' : 150}

En répétant les demandes jusqu'à ce que la valeur page soit égale à total_pages, il est possible de parcourir les résultats. 

L'API offre des options supplémentaires pour trier ou filtrer les réponses. En voici quelques exemples.

parameters = {'term' : '<nom de l'entreprise>', 'limit' : 50, 'offset' : 0, 'orderby' : 'brand_name', 'order' : 'asc'}

Cette méthode permet de trier les données par ordre alphabétique de nom de marque.

parameters = {'term' : '<nom de la société>', 'limit' : 50, 'offset' : 0, 'filter_status' : 'resolved'}

Cela permet de filtrer les résultats aux rapports qui ont été marqués comme étant résolus.

D'autres options de tri et de filtrage sont disponibles sur la page principale de documentation de l'API.

Collection Postman

Postman est un outil de développement d'API qui peut fournir une collection d'exemples de demandes. Nous avons créé une collection qui comprend les démonstrations suivantes :


Cette collection peut être téléchargée ici. Vous devrez créer des variables d'environnement pour que les demandes initiales fonctionnent. Ces variables sont les suivantes

cURL

Le moyen le plus rapide de vérifier les paramètres et l'URL de votre requête consiste à utiliser l'outil de ligne de commande cURL. Ceci est présent par défaut sur les systèmes Mac et Linux et peut être installé sur Windows s'il n'est pas déjà fourni.

Exécutez la commande suivante dans la fenêtre du terminal et remplacez simplement l'adresse courriel "email"
et le mot de passe si nécessaire.

curl 'https://www.drugshortagescanada.ca/api/v1/login' -D - -X POST --data "email=<email>&password=<password>"

Le résultat doit être un ensemble JSON contenant le compte utilisateur demandé et les entêtes de réponse contenant un jeton de connexion avec l'option -D -.

Autres outils

Il existe d'autres moyens d'accéder à l'API, notamment Microsoft Excel, mais ils nécessitent plus de détails sur les résultats souhaités. Dans ces cas, veuillez contacter l'équipe d'assistance en utilisant la page Contact