Baboon API & Baboon API Visualizer

C'est quoi ?

🦧 Baboon API est une API publique semblable aux traditionnelles "Dog et Cat APIs".

Ce type d'outil permet notamment aux développeurs de récupérer des photos de babouins via des requêtes pour les afficher directement dans leurs interfaces en cours de construction.

De cette manière, ils peuvent travailler sur la façon dont les images sont positionnées parmi les autres éléments de l'UI.

⬇️ Jouez avec les langages et frameworks en les attrapant avec votre souris !

project image 0
project image 1
project image 2
project image 3

Particularités

🤔 Une API, c'est déjà un concept technique. Jusqu'ici, tout ceci ne fait probablement pas beaucoup de sens. Alors, comment permettre à n'importe qui de se fournir en images de babouins, sans passer par Google ? Une seule solution : un site web de visualisation !

🧱 Dans la foulée de la création de la Baboon API, j'ai utilisé le framework Vue et le langage TypeScript pour réaliser un petit site de présentation des capacités de la Baboon API. Ça m'a permis de me décrasser avec Vue et de tester un design original.

📡 Une API, c'est un programme côté serveur. Celle que j'ai créée permet de scanner un répertoire rempli de photos et d'en renvoyer une ou plusieurs URLs signées. Seulement, l'intérêt de ce projet aurait été limité si le répertoire ne contenait que 5 ou 10 images... Sur ce genre d'application, on en stocke généralement plusieurs centaines. Puisque je n'allais pas passer des jours à scroller internet pour sauvegarder des photos de babouins, j'ai décidé de mettre un pied dans le monde du webscraping !

🤖 Avec la librairie Puppeteer, il est en effet possible d'automatiser cette tâche en JavaScript. Après avoir passé un petit moment à le mettre en place, j'ai pu lancer un bot et le regarder faire tout le sale boulot en quelques dizaines de secondes !

Défis

🎯 À mes yeux, ce projet ne pouvait pas être réalisé sans ses contreparties web (site annexe de visualisation) et webscraping (outil en local pour établir le stock d'images). Il a donc fallu être persévérant et s'intéresser à plein de disciplines différentes, dont certaines m'étaient totalement inconnues (le webscraping).

🧪 Au-delà de ça, Bun et ElysiaJS sont des outils très jeunes et aux communautés balbutiantes. Peu de ressources sont disponibles, car peu de gens s'y sont déjà essayés, ce qui peut rendre difficile une implémentation paraissant simple.

Motivations

💡 D'une part, en tant que développeur, j'utilise de temps en temps des APIs génériques — souvent les mêmes. Et quand elles ont pour thème des animaux, ce sont toujours des chiens ou des chats...

🚀 D'autre part, je suivais des cours en ligne sur le runtime Bun et le framework ElysiaJS. Il m'est alors venu l'idée de créer une API publique comme celles que j'utilisais, à l'aide de mes nouvelles compétences, tout en proposant un animal inédit.

La suite ?

🔍 Bien que la fabrication d'un scraper web fût très instructive, je ne pense pas avoir ni l'envie, ni le besoin (pour le moment) de réitérer ce genre d'exercice. Si cela devient un jour le cas, je changerai probablement de langage de programmation : il est plus courant (et donc facile) de scraper en Python qu'en JavaScript. On pourrait très bien imaginer un rôle pour l'IA dans la reconnaissance des doublons et le filtre qualité (que j'ai exercé manuellement cette fois-ci)

📈 Actuellement, le visualiseur de l'API est muni d'un tracker de visites avec Google Analytics. Si un jour j'aperçois que mon outil reçoit beaucoup de requêtes, alors je ferai évoluer l'application avec Docker et Kubernetes pour garantir une meilleure distribution du web service.