Exemples API
Dans ce cours, nous allons voir comment utiliser l'API globale de Data Fair à l'aide de la commande curl.
- Comment créer un jeu de données fichier
- Comment mettre à jour un jeu de données fichier
- Comment ajouter une pièce jointe
Dans le cours Utiliser l'API sur le back-office, nous avons vu comment créer une clé d’API sur le back-office.
Dans les paragraphes suivants, nous allons voir comment utiliser cette clé.
Si vous êtes contributeur de votre organisation, rapprochez-vous d’un administrateur de votre organisation pour que celui-ci vous crée une clé d’API.
Dans les exemples, $API_KEY doit etre remplacé par votre clé d'API.
Comment créer un jeu de données fichier
Un jeu de données fichier est créé à l'aide d'une commande curl POST.
Voici un exemple de requête pour créer un jeu de données correspondant à notre fichier test-de-l-API.csv.
curl --request POST \
--url https://koumoul.com/data-fair/api/v1/datasets \
--header 'content-type: multipart/form-data' \
--header 'x-apikey: $API_KEY' \
--form file=@test-de-l-API.csv
La requête est une requête POST et nous avons poussé le fichier test-de-l-API-maj.csv.
Si vous utilisez cette commande dans le répertoire contenant le fichier test-de-l-API.csv, celle-ci sera effectuée correctement.
Si vous souhaitez envoyer un fichier d'un autre répertoire, il vous faudra le chemin complet du fichier.
Par exemple, la commande suivante permet également d'envoyer le fichier test-de-l-API.csv :
curl --request POST \
--url https://koumoul.com/data-fair/api/v1/datasets \
--header 'content-type: multipart/form-data' \
--header 'x-apikey: $API_KEY' \
--form file=@"C:\Koumoul\Dataset\2024\cours\ExemplesAPI\test-de-l-API.csv"
La différence étant le contenu de file qui contient le chemin complet du fichier sur l'ordinateur.
Une fois votre commande envoyée, le fichier sera créé sur votre espace :
Comment mettre à jour un jeu de données fichier
L'id de notre jeux de données que nous venons de créer peut etre obtenu à l'aide d'une requete GET sur les datasets. Notre jeu de données possede cet id : tnmt6vbo-uyvlip-2e3uxp9k
La requête suivante nous permet de mettre à jour notre jeu de données :
curl --request PUT \
--url https://koumoul.com/data-fair/api/v1/datasets/tnmt6vbo-uyvlip-2e3uxp9k \
--header 'content-type: multipart/form-data' \
--header 'x-apikey: $API_KEY' \
--form file=@test-de-l-API-maj.csv
La requête est une requête PUT sur le jeu de données avec l'id tnmt6vbo-uyvlip-2e3uxp9k et nous avons poussé le fichier test-de-l-API-maj.csv.
Comment ajouter une pièce jointe
Attention cet exemple est valable pour la mise à jour d'une seule piece jointe.
Si votre jeu de données contient plusieurs pièces jointes, veuillez nous contacter.
Pour créer une pièce jointe, deux requête sont necessaires, une requête POST, puis une requête PATCH.
La requête POST suivante permet de pousser une pièce jointe sur un jeu de données existant :
curl --request POST \
--url https://koumoul.com/data-fair/api/v1/datasets/tnmt6vbo-uyvlip-2e3uxp9k/metadata-attachments/ \
--header 'x-apikey: $API_KEY' \
--form attachment=@pj.png
La requête est une requête POST, nous avons poussé la pièce jointe pj.png sur le jeu de données dont l'id est tnmt6vbo-uyvlip-2e3uxp9k.
Le fichier a été poussé, il faut maintenant valider la pièce jointe à l'aide d'une requête PATCH :
curl --request PATCH \
--url https://koumoul.com/data-fair/api/v1/datasets/tnmt6vbo-uyvlip-2e3uxp9k/ \
--header 'content-type: application/json' \
--header 'x-apikey: $API_KEY' \
--data '{"attachments": [{"includeInCatalogPublications": false, "mimetype": "image/png","name": "pj.png","size": 33100,"title":"pj.png","type":"file"}]}'
Les valeurs contenues dans attachments correspondent à la réponse à la requête précédente.