Publication d'un module python open source pour utiliser l'API des applications Bubble.io.
Qu’est-ce qu’une API
Pour simplifier, une API REST est un langage/protocole qui permet d’interroger (ou de modifier) les données de votre application web directement, sans passer par l’interface utilisateur.
C’est ce qui permet dans le développement web moderne de séparer le backend (accès aux données) du frontend (restitution des données dans une interface utilisateur).
Cela permet entre également de relier entre elles différentes applications web, ou bien de mettre en place des automatisations externes (telles que des mises à jour de la donnée ou bien des sauvegardes).
Code ou No-Code ?
Si on parle d’API, c’est que l’on commence à ouvrir le capot de la machine. On est donc plutôt dans le domaine obscur du code. Toutefois, même un no-coder qui se respecte se doit de comprendre comment fonctionne une API (de manière générale c’est bien de comprendre comment fonctionnent les choses 😊)
Néanmoins, il existe des solutions pour manipuler les API des principales applications web sans devoir mettre les mains dans le cambouis. La solution la plus connue est très probablement Zapier qui permet de construire des Workflows faisant intervenir plusieurs applications :
Lorsqu’une donnée est créée sur App A | ➡ | Faire quelque chose sur App B
avec les données de App A |
Par exemple : Lorsqu’une nouvelle ligne entre dans mon tableau Airtable je veux créer un évènement dans mon calendrier Google à partir des données de cette ligne.
Pour ce type d’usage, Zapier est simple et complètement adapté (attention à la tarification si vous multipliez les workflow Zapier).
Mais dans de nombreux cas de figure, Zapier n’est plus du tout adapté ⛔, par exemple, si je veux :
- Extraire ou importer des données en masse
- Transformer la donnée (par exemple faire des jointures entre les tables)
- Convertir dans divers formats (CSV, Excel, JSON ou même vers une autre API)
- Exporter vers différents supports (en local, sur un FTP, sur un stockage cloud, etc.)
Pour ces usages, il faut souvent mélanger plusieurs compétences et en revenir au bon vieux script👨💻 (python dans mon cas).
API des applications Bubble.io
Chaque application mise en ligne sur Bubble.io est une instance “autonome” et dispose de sa propre API. L’API doit au préalable être activée dans les paramètres de l’application (Settings > API > Enable Data API
).
De plus, un **API Token doit être généré : il sera la clé d’authentification pour accéder à l’API (Settings > API > API Token
)
La documentation de l’API est disponible ici : https://manual.bubble.io/core-resources/api/data-api
Implémentation Python
Pour Bubble.io, n’ayant pas trouvé de librairie existante, j’ai donc commencé à écrire mon propre module, partagé ici en open-source sur Pypi, et Github. La documentation est ici.
Exemple :
>>> from bubbleio import Bubbleio
>>> API_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
>>> API_ROOT = "https://appname.bubbleapps.io/api/1.1/obj"
>>> bbio = Bubbleio(API_KEY, API_ROOT)
>>> bbio.get_results("fooType")
[
{
"foo_field_1": "value",
"foo_field_2": "value",
"_id": "item1_bubble_id"
},
{
"foo_field_1": "value",
"foo_field_2": "value",
"_id": "item2_bubble_id"
},
...
]