Salut tout le monde,

Je vois que la plupart des questions sur ce coin de forum portent sur des sortes d'exercices (ou sur Autocad), j'aimerais montrer un truc pratico-pratique avec Common Lisp ! Comment appeler une API REST.

On doit donc:

  • faire des requêtes HTTP: on va utiliser la librairie Dexador
  • transformer le JSON: on a beaucoup de choix. On va utiliser Jonathan, puis Shasht (pour travailler avec des dictionnaires).


Le point d'API de Github est https://api.github.com Il faut voir la doc. Le point d'API pour avoir des infos sur un utilisateur est https://api.github.com/users/<pseudo>

Pour effectuer une requête HTTP GET il suffit de faire:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
(dex:get "https://api.github.com/users/<nom>")
Pour lire le JSON, on appelle avec le résultat.

On obtient un résultat avec ce genre d'informations:
created_at public_repos email location blog company bio repos_url
En fait, cela suppose qu'on a installé les librairies, par exemple avec Quicklisp.

J'ai une démo en vidéo :) Ce qu'on fait en plus c'est créer un binaire pour pouvoir le lancer depuis le terminal. Il prend en argument un nom d'utilisateur qu'on souhaite étudier et il affiche quelques informations sur la sortie standard. Simple, mais ça permet de voir pas mal de choses pratiques (et qui sont pas forcément faciles à découvrir).



J'espère que celles et ceux qui apprennent Lisp de manière un peu obtuse à l'école y verront un autre intérêt!

---

Liens:

- awesome-cl: une liste de librairies
- https://lispcookbook.github.io/cl-cookbook/: une ressource collaborative