Créé dans un but de faciliter les tests lors du commencement d'un projet et ainsi d'éviter de monter un serveur et de développer une API spécifique, Sheetson permet de convertir très rapidement et simplement un fichier Google Sheet en une API RESTful.

J'ai déjà présenté un service nommé Sheety qui dispose pratiquement des mêmes fonctionnalités. Pour l'exemple, j'ai donc repris la même Sheet que j'avais utilisé dans la présentation de Sheety :

Pour créer une API à partir d'un fichier Google Sheet, le paramétrage est extrêmement simple. A la différence de Sheety où il fallait publier le fichier, avec Sheetson, il vous faut simplement activer le partage et donner en destinataire une adresse spécifique à Sheetson, qui est présente dans la documentation. Lors de mes tests, le destinataire était :

sheetson@project-id-9647564749903618942.iam.gserviceaccount.com

Votre API est ensuite disponible directement en fournissant dans l'URL de Sheetson le nom du feuillet ainsi que l'identifiant du fichier :

https://api.sheetson.com/v1/sheets/:sheetName?spreadsheetId=:spreadsheetId

Soit :

https://api.sheetson.com/v1/sheets/pays?spreadsheetId=1NHK_epRSDLFFITgRIsUb6ksvWJeIjfbopq8R6KYlzAM

Par défaut, Sheetson ne retourne que les 24 premiers résultats. Dans la ressource permettant de lire le contenu d'un feuillet, trois paramètres sont disponibles :

  • limit : permet de spécifier un nombre maximal de lignes à retourner (par défaut 24, maximum 100)
  • page : numéro de page
  • keys : spécifie les champs à retourner

Par exemple :

https://api.sheetson.com/v1/sheets/pays?spreadsheetId=1NHK_epRSDLFFITgRIsUb6ksvWJeIjfbopq8R6KYlzAM&page=3&limit=10&keys=code,alpha2,name_fr

Sheetson propose d'autres ressources, notamment le retour d'une ligne en particulier. Le numéro de ligne est à insérer après le nom du feuillet :

`https://api.sheetson.com/v1/sheets/pays/10?spreadsheetId=xxx`

L'API fournie par Sheetson permet également de créer, modifier ou supprimer une ligne. Etant donné que l'API est en REST, il faut utiliser les entêtes HTTP adéquates (POST, PUT, DELETE). Tout y est expliqué dans la documentation.

Petite différence avec Sheety, la modification d'une donnée de la feuille n'est pas répercutée directement dans l'API. Il faut attendre un certain temps avant que la donnée soit actualisée.