Utiliser les REST API JSON avec cURL

cURL with REST JSON

De plus en plus de sites vous permettent d’utiliser des API pour mettre à jour des valeurs ou bien pour ajouter de nouvelles fonctionnalités.

L’utilisation de ces API est intéressante car elle permet de développer toutes sortes d’applications (mobile, tablette, desktop) pour interagir avec un site qui ne vous appartient pas et sur lequel vous n’avez pas full Control.

Le protocole le plus fréquemment utilisé est REST, qui est basé sur un échange de données et de requêtage au format JSON.

Le REST est simple à comprendre car il ne dispose que de 4 commandes: GET, POST, PUT et DELETE.

API Friendly cURL

cURL est un logiciel gratuit qui vous permet de réaliser presque toutes les opérations HTTP et FTP possibles.
Grâce à cURL vous pouvez donc télécharger des fichiers ou bien mettre à jour des données via un formulaire très facilement.

Et si cURL est utilisé depuis des années par les techops et les sysops, il est devenu un logiciel API Friendly.

En effet, ces dernières années on a connu un boom des API ouvertes aux développeurs (voir même aux utilisateurs lambda). Ces API permettent ainsi interagir en temps réel avec un site ou un service sans avoir à connaitre la mécanique qui se cache derrière.

Et le moyen le plus simple d’utiliser ces API HTTP est sans aucun doute l’utilisation de cURL.

Les commandes suivantes illustrent l’utilisation de cURL avec une API REST classique.

Ajouter des données en REST: POST

curl -i -su login:pass -H "Accept: application/json" -X POST http://url.td/amis/ -d "{'nom':'toto'}"

Voici le détail des paramètres:

  • -i: affiche les headers HTTP de la réponse reçue
  • -su: permet de spécifier un login / mot de passe
  • -H: permet de préciser un header HTTP dans la requête effectuée
  • -X: permet de spécifier le type de méthode HTTP à utiliser
  • -d: permet de spécifier les données au format JSON qui sont à envoyer

Dans cet exemple, on ajoute un ami qui porte le nom toto.

Lire des données en REST: GET

curl -i -su login:pass -H "Accept: application/json" -X GET http://url.td/amis/"

Le paramètre -X est optionnel lorsque l’on souhaite extraire des données. La commande de notre exemple permet de lister nom amis.

Veuillez noter que les urls de requêtage peuvent être complexes (ex: http://url.td/amis/index.php?nom=tot*)

Mettre à jour des données en REST: PUT

L’exemple suivant permet de mettre à jour un enregistrement en précisant un le champ à updater.

curl -i -su login:pass -H "Accept: application/json" -X PUT http://url.td/amis/toto/ -d "{'prenom':'titi'}"

Supprimer des données en REST: DELETE

La commande suivante permet d’illustrer la suppression de notre amis toto:

curl -i -su login:pass -H "Accept: application/json" -X DELETE http://url.td/amis/toto/

Leave a Reply

Your email address will not be published. Required fields are marked *